From e088098c50108d0e0de76f97dd568a49a1ee433f Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 21 Dec 2013 23:04:01 +0200 Subject: [PATCH] further jackson work --- .../baeldung/jackson/MyDtoIgnoreField.java | 42 +++++++++++++++++++ ...ooleanMixIn.java => MyMixInForString.java} | 2 +- .../test/JacksonSerializationUnitTest.java | 19 +++++++-- 3 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreField.java rename jackson/src/test/java/org/baeldung/jackson/{MyBooleanMixIn.java => MyMixInForString.java} (77%) diff --git a/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreField.java b/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreField.java new file mode 100644 index 0000000000..6a580eab3f --- /dev/null +++ b/jackson/src/test/java/org/baeldung/jackson/MyDtoIgnoreField.java @@ -0,0 +1,42 @@ +package org.baeldung.jackson; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +public class MyDtoIgnoreField { + + private String stringValue; + @JsonIgnore + private int intValue; + private boolean booleanValue; + + public MyDtoIgnoreField() { + super(); + } + + // 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/MyBooleanMixIn.java b/jackson/src/test/java/org/baeldung/jackson/MyMixInForString.java similarity index 77% rename from jackson/src/test/java/org/baeldung/jackson/MyBooleanMixIn.java rename to jackson/src/test/java/org/baeldung/jackson/MyMixInForString.java index feb19f1144..a215559a84 100644 --- a/jackson/src/test/java/org/baeldung/jackson/MyBooleanMixIn.java +++ b/jackson/src/test/java/org/baeldung/jackson/MyMixInForString.java @@ -3,6 +3,6 @@ package org.baeldung.jackson; import com.fasterxml.jackson.annotation.JsonIgnoreType; @JsonIgnoreType -public class MyBooleanMixIn { +public class MyMixInForString { // } diff --git a/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java index 4765669a60..a7c54a620d 100644 --- a/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java +++ b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java @@ -7,8 +7,9 @@ import static org.junit.Assert.assertThat; import java.io.IOException; import java.util.List; -import org.baeldung.jackson.MyBooleanMixIn; +import org.baeldung.jackson.MyMixInForString; import org.baeldung.jackson.MyDto; +import org.baeldung.jackson.MyDtoIgnoreField; import org.baeldung.jackson.MyDtoIgnoreFieldByName; import org.baeldung.jackson.MyDtoIncludeNonDefault; import org.junit.Test; @@ -43,7 +44,7 @@ public class JacksonSerializationUnitTest { } @Test - public final void givenFieldIsIgnored_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { + public final void givenFieldIsIgnoredByName_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { final ObjectMapper mapper = new ObjectMapper(); final MyDtoIgnoreFieldByName dtoObject = new MyDtoIgnoreFieldByName(); dtoObject.setBooleanValue(true); @@ -55,10 +56,22 @@ public class JacksonSerializationUnitTest { System.out.println(dtoAsString); } + @Test + public final void givenFieldIsIgnoredDirectly_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + final MyDtoIgnoreField dtoObject = new MyDtoIgnoreField(); + + final String dtoAsString = mapper.writeValueAsString(dtoObject); + + assertThat(dtoAsString, not(containsString("intValue"))); + assertThat(dtoAsString, containsString("booleanValue")); + 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); + mapper.addMixInAnnotations(String.class, MyMixInForString.class); final MyDto dtoObject = new MyDto(); dtoObject.setBooleanValue(true);