Skip to content

Commit 1a217c4

Browse files
author
eugenp
committed
jackson custom serializer work
1 parent a47c533 commit 1a217c4

12 files changed

+92
-27
lines changed

jackson/src/test/java/org/baeldung/jackson/dtos/Item.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
public class Item {
44
public final int id;
55
public final String itemNr;
6-
public final User createdBy;
6+
public final User owner;
77

8-
public Item(final int id, final String itemNr, final User createdBy) {
8+
public Item(final int id, final String itemNr, final User owner) {
99
this.id = id;
1010
this.itemNr = itemNr;
11-
this.createdBy = createdBy;
11+
this.owner = owner;
1212
}
1313

1414
// API
@@ -21,8 +21,8 @@ public String getItemNr() {
2121
return itemNr;
2222
}
2323

24-
public User getCreatedBy() {
25-
return createdBy;
24+
public User getOwner() {
25+
return owner;
2626
}
2727

2828
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.baeldung.jackson.dtos;
2+
3+
import org.baeldung.jackson.serialization.ItemSerializerOnClass;
4+
5+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6+
7+
@JsonSerialize(using = ItemSerializerOnClass.class)
8+
public class ItemWithSerializer {
9+
public final int id;
10+
public final String itemNr;
11+
public final User owner;
12+
13+
public ItemWithSerializer(final int id, final String itemNr, final User owner) {
14+
this.id = id;
15+
this.itemNr = itemNr;
16+
this.owner = owner;
17+
}
18+
19+
// API
20+
21+
public int getId() {
22+
return id;
23+
}
24+
25+
public String getItemNr() {
26+
return itemNr;
27+
}
28+
29+
public User getOwner() {
30+
return owner;
31+
}
32+
33+
}

jackson/src/test/java/org/baeldung/jackson/dtos/MyDtoIgnoreField.java renamed to jackson/src/test/java/org/baeldung/jackson/dtos/ignore/MyDtoIgnoreField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.baeldung.jackson.dtos;
1+
package org.baeldung.jackson.dtos.ignore;
22

33
import com.fasterxml.jackson.annotation.JsonIgnore;
44

jackson/src/test/java/org/baeldung/jackson/dtos/MyDtoIgnoreFieldByName.java renamed to jackson/src/test/java/org/baeldung/jackson/dtos/ignore/MyDtoIgnoreFieldByName.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.baeldung.jackson.dtos;
1+
package org.baeldung.jackson.dtos.ignore;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44

jackson/src/test/java/org/baeldung/jackson/dtos/MyDtoIgnoreNull.java renamed to jackson/src/test/java/org/baeldung/jackson/dtos/ignore/MyDtoIgnoreNull.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.baeldung.jackson.dtos;
1+
package org.baeldung.jackson.dtos.ignore;
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
44
import com.fasterxml.jackson.annotation.JsonInclude.Include;

jackson/src/test/java/org/baeldung/jackson/dtos/MyDtoIgnoreType.java renamed to jackson/src/test/java/org/baeldung/jackson/dtos/ignore/MyDtoIgnoreType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.baeldung.jackson.dtos;
1+
package org.baeldung.jackson.dtos.ignore;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44

jackson/src/test/java/org/baeldung/jackson/dtos/MyDtoIgnoreUnknown.java renamed to jackson/src/test/java/org/baeldung/jackson/dtos/ignore/MyDtoIgnoreUnknown.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.baeldung.jackson.dtos;
1+
package org.baeldung.jackson.dtos.ignore;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44

jackson/src/test/java/org/baeldung/jackson/try1/ItemSerializer.java renamed to jackson/src/test/java/org/baeldung/jackson/serialization/ItemSerializer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.baeldung.jackson.try1;
1+
package org.baeldung.jackson.serialization;
22

33
import java.io.IOException;
44

@@ -16,7 +16,7 @@ public final void serialize(final Item value, final JsonGenerator jgen, final Se
1616
jgen.writeStartObject();
1717
jgen.writeNumberField("id", value.id);
1818
jgen.writeStringField("itemNr", value.itemNr);
19-
jgen.writeNumberField("createdBy", value.createdBy.id);
19+
jgen.writeNumberField("createdBy", value.owner.id);
2020
jgen.writeEndObject();
2121
}
2222

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.baeldung.jackson.serialization;
2+
3+
import java.io.IOException;
4+
5+
import org.baeldung.jackson.dtos.ItemWithSerializer;
6+
7+
import com.fasterxml.jackson.core.JsonGenerator;
8+
import com.fasterxml.jackson.core.JsonProcessingException;
9+
import com.fasterxml.jackson.databind.JsonSerializer;
10+
import com.fasterxml.jackson.databind.SerializerProvider;
11+
12+
public class ItemSerializerOnClass extends JsonSerializer<ItemWithSerializer> {
13+
14+
@Override
15+
public final void serialize(final ItemWithSerializer value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException, JsonProcessingException {
16+
jgen.writeStartObject();
17+
jgen.writeNumberField("id", value.id);
18+
jgen.writeStringField("itemNr", value.itemNr);
19+
jgen.writeNumberField("createdBy", value.owner.id);
20+
jgen.writeEndObject();
21+
}
22+
23+
}

jackson/src/test/java/org/baeldung/jackson/test/JacksonDeserializationUnitTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import java.io.IOException;
88

99
import org.baeldung.jackson.dtos.MyDto;
10-
import org.baeldung.jackson.dtos.MyDtoIgnoreUnknown;
10+
import org.baeldung.jackson.dtos.ignore.MyDtoIgnoreUnknown;
1111
import org.junit.Test;
1212

1313
import com.fasterxml.jackson.core.JsonFactory;

0 commit comments

Comments
 (0)