diff --git a/jackson/src/test/java/org/baeldung/jackson/MyBooleanMixIn.java b/jackson/src/test/java/org/baeldung/jackson/MyBooleanMixIn.java new file mode 100644 index 0000000000..feb19f1144 --- /dev/null +++ b/jackson/src/test/java/org/baeldung/jackson/MyBooleanMixIn.java @@ -0,0 +1,8 @@ +package org.baeldung.jackson; + +import com.fasterxml.jackson.annotation.JsonIgnoreType; + +@JsonIgnoreType +public class MyBooleanMixIn { + // +} diff --git a/jackson/src/test/java/org/baeldung/jackson/BarDto.java b/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreFieldByName.java similarity index 91% rename from jackson/src/test/java/org/baeldung/jackson/BarDto.java rename to jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreFieldByName.java index 0318dd0616..20d1315363 100644 --- a/jackson/src/test/java/org/baeldung/jackson/BarDto.java +++ b/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreFieldByName.java @@ -3,13 +3,13 @@ package org.baeldung.jackson; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties(value = { "intValue" }) -public class BarDto { +public class MyDtoIgnoreFieldByName { private String stringValue; private int intValue; private boolean booleanValue; - public BarDto() { + public MyDtoIgnoreFieldByName() { super(); } diff --git a/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreType.java b/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreType.java new file mode 100644 index 0000000000..b9d776292a --- /dev/null +++ b/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreType.java @@ -0,0 +1,50 @@ +package org.baeldung.jackson; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class MyDtoIgnoreType { + + private String stringValue; + private int intValue; + private boolean booleanValue; + + public MyDtoIgnoreType() { + super(); + } + + public MyDtoIgnoreType(final String stringValue, final int intValue, final boolean booleanValue) { + super(); + + this.stringValue = stringValue; + this.intValue = intValue; + this.booleanValue = booleanValue; + } + + // API + + public String getStringValue() { + return stringValue; + } + + public void setStringValue(final String stringValue) { + this.stringValue = stringValue; + } + + public int getIntValue() { + return intValue; + } + + public void setIntValue(final int intValue) { + this.intValue = intValue; + } + + public boolean isBooleanValue() { + return booleanValue; + } + + public void setBooleanValue(final boolean booleanValue) { + this.booleanValue = booleanValue; + } + +} diff --git a/jackson/src/test/java/org/baeldung/jackson/FooDto.java b/jackson/src/test/java/org/baeldung/jackson/MyDtoIncludeNonDefault.java similarity index 91% rename from jackson/src/test/java/org/baeldung/jackson/FooDto.java rename to jackson/src/test/java/org/baeldung/jackson/MyDtoIncludeNonDefault.java index b5315b0d7e..451d22eb9a 100644 --- a/jackson/src/test/java/org/baeldung/jackson/FooDto.java +++ b/jackson/src/test/java/org/baeldung/jackson/MyDtoIncludeNonDefault.java @@ -4,13 +4,13 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; @JsonInclude(Include.NON_DEFAULT) -public class FooDto { +public class MyDtoIncludeNonDefault { private String stringValue; private int intValue; private boolean booleanValue; - public FooDto() { + public MyDtoIncludeNonDefault() { super(); } diff --git a/jackson/src/test/java/org/baeldung/jackson/JacksonDeserializationUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/test/JacksonDeserializationUnitTest.java similarity index 97% rename from jackson/src/test/java/org/baeldung/jackson/JacksonDeserializationUnitTest.java rename to jackson/src/test/java/org/baeldung/jackson/test/JacksonDeserializationUnitTest.java index 1bbdbeb075..aeadf3fad1 100644 --- a/jackson/src/test/java/org/baeldung/jackson/JacksonDeserializationUnitTest.java +++ b/jackson/src/test/java/org/baeldung/jackson/test/JacksonDeserializationUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.jackson; +package org.baeldung.jackson.test; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertNotNull; @@ -6,6 +6,8 @@ import static org.junit.Assert.assertThat; import java.io.IOException; +import org.baeldung.jackson.MyDto; +import org.baeldung.jackson.MyDtoIgnoreUnkown; import org.junit.Test; import com.fasterxml.jackson.core.JsonParseException; diff --git a/jackson/src/test/java/org/baeldung/jackson/JacksonSerializationUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java similarity index 67% rename from jackson/src/test/java/org/baeldung/jackson/JacksonSerializationUnitTest.java rename to jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java index 46bdff06fb..4765669a60 100644 --- a/jackson/src/test/java/org/baeldung/jackson/JacksonSerializationUnitTest.java +++ b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.jackson; +package org.baeldung.jackson.test; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; @@ -7,6 +7,10 @@ import static org.junit.Assert.assertThat; import java.io.IOException; import java.util.List; +import org.baeldung.jackson.MyBooleanMixIn; +import org.baeldung.jackson.MyDto; +import org.baeldung.jackson.MyDtoIgnoreFieldByName; +import org.baeldung.jackson.MyDtoIncludeNonDefault; import org.junit.Test; import com.fasterxml.jackson.core.JsonParseException; @@ -20,7 +24,7 @@ public class JacksonSerializationUnitTest { @Test public final void givenOnlyNonDefaultValuesAreSerialized_whenDtoHasOnlyDefaultValues_thenCorrect() throws JsonParseException, IOException { final ObjectMapper mapper = new ObjectMapper(); - final String dtoAsString = mapper.writeValueAsString(new FooDto()); + final String dtoAsString = mapper.writeValueAsString(new MyDtoIncludeNonDefault()); assertThat(dtoAsString, not(containsString("intValue"))); System.out.println(dtoAsString); @@ -29,7 +33,7 @@ public class JacksonSerializationUnitTest { @Test public final void givenOnlyNonDefaultValuesAreSerialized_whenDtoHasNonDefaultValue_thenCorrect() throws JsonParseException, IOException { final ObjectMapper mapper = new ObjectMapper(); - final FooDto dtoObject = new FooDto(); + final MyDtoIncludeNonDefault dtoObject = new MyDtoIncludeNonDefault(); dtoObject.setBooleanValue(true); final String dtoAsString = mapper.writeValueAsString(dtoObject); @@ -41,7 +45,7 @@ public class JacksonSerializationUnitTest { @Test public final void givenFieldIsIgnored_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { final ObjectMapper mapper = new ObjectMapper(); - final BarDto dtoObject = new BarDto(); + final MyDtoIgnoreFieldByName dtoObject = new MyDtoIgnoreFieldByName(); dtoObject.setBooleanValue(true); final String dtoAsString = mapper.writeValueAsString(dtoObject); @@ -51,6 +55,21 @@ public class JacksonSerializationUnitTest { System.out.println(dtoAsString); } + @Test + public final void givenFieldTypeIsIgnored_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + mapper.addMixInAnnotations(String.class, MyBooleanMixIn.class); + final MyDto dtoObject = new MyDto(); + dtoObject.setBooleanValue(true); + + final String dtoAsString = mapper.writeValueAsString(dtoObject); + + assertThat(dtoAsString, containsString("intValue")); + assertThat(dtoAsString, containsString("booleanValue")); + assertThat(dtoAsString, not(containsString("stringValue"))); + System.out.println(dtoAsString); + } + // tests - multiple entities to json @Test