Skip to content

Commit ca5d33b

Browse files
author
eugenp
committed
minor jackson upgrade, using jackson filters
1 parent ca3e353 commit ca5d33b

File tree

3 files changed

+72
-1
lines changed

3 files changed

+72
-1
lines changed

jackson/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
<mysql-connector-java.version>5.1.27</mysql-connector-java.version>
105105

106106
<!-- marshalling -->
107-
<jackson.version>2.2.3</jackson.version>
107+
<jackson.version>2.3.0</jackson.version>
108108

109109
<!-- logging -->
110110
<org.slf4j.version>1.7.5</org.slf4j.version>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package org.baeldung.jackson.ignore;
2+
3+
import com.fasterxml.jackson.annotation.JsonFilter;
4+
5+
@JsonFilter("myFilter")
6+
public class MyDtoWithFilter {
7+
8+
private String stringValue;
9+
private int intValue;
10+
private boolean booleanValue;
11+
12+
public MyDtoWithFilter() {
13+
super();
14+
}
15+
16+
public MyDtoWithFilter(final String stringValue, final int intValue, final boolean booleanValue) {
17+
super();
18+
19+
this.stringValue = stringValue;
20+
this.intValue = intValue;
21+
this.booleanValue = booleanValue;
22+
}
23+
24+
// API
25+
26+
public String getStringValue() {
27+
return stringValue;
28+
}
29+
30+
public void setStringValue(final String stringValue) {
31+
this.stringValue = stringValue;
32+
}
33+
34+
public int getIntValue() {
35+
return intValue;
36+
}
37+
38+
public void setIntValue(final int intValue) {
39+
this.intValue = intValue;
40+
}
41+
42+
public boolean isBooleanValue() {
43+
return booleanValue;
44+
}
45+
46+
public void setBooleanValue(final boolean booleanValue) {
47+
this.booleanValue = booleanValue;
48+
}
49+
50+
}

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,15 @@
1111
import org.baeldung.jackson.ignore.MyDtoIgnoreField;
1212
import org.baeldung.jackson.ignore.MyDtoIgnoreFieldByName;
1313
import org.baeldung.jackson.ignore.MyDtoIncludeNonDefault;
14+
import org.baeldung.jackson.ignore.MyDtoWithFilter;
1415
import org.baeldung.jackson.ignore.MyMixInForString;
1516
import org.junit.Test;
1617

1718
import com.fasterxml.jackson.core.JsonParseException;
1819
import com.fasterxml.jackson.databind.ObjectMapper;
20+
import com.fasterxml.jackson.databind.ser.FilterProvider;
21+
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
22+
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
1923
import com.google.common.collect.Lists;
2024

2125
public class JacksonSerializationUnitTest {
@@ -83,6 +87,23 @@ public final void givenFieldTypeIsIgnored_whenDtoIsSerialized_thenCorrect() thro
8387
System.out.println(dtoAsString);
8488
}
8589

90+
@Test
91+
public final void givenTypeHasFilterThatIgnoresIntsOver10_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException {
92+
final ObjectMapper mapper = new ObjectMapper();
93+
final SimpleBeanPropertyFilter theFilter = SimpleBeanPropertyFilter.serializeAllExcept("intValue");
94+
final FilterProvider filters = new SimpleFilterProvider().addFilter("myFilter", theFilter);
95+
96+
final MyDtoWithFilter dtoObject = new MyDtoWithFilter();
97+
dtoObject.setIntValue(12);
98+
99+
final String dtoAsString = mapper.writer(filters).writeValueAsString(dtoObject);
100+
101+
assertThat(dtoAsString, not(containsString("intValue")));
102+
assertThat(dtoAsString, containsString("booleanValue"));
103+
assertThat(dtoAsString, containsString("stringValue"));
104+
System.out.println(dtoAsString);
105+
}
106+
86107
// tests - multiple entities to json
87108

88109
@Test

0 commit comments

Comments
 (0)