[BAEL-12185] - Updated JACKSON ANNOTATIONS article
This commit is contained in:
parent
5501eed39e
commit
2b8ebe7de2
|
@ -13,7 +13,7 @@ import java.util.List;
|
||||||
* @author Alex Theedom www.readlearncode.com
|
* @author Alex Theedom www.readlearncode.com
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
@JsonRootName("writer")
|
@JsonRootName(value = "writer", namespace = "book")
|
||||||
public class Author extends Person {
|
public class Author extends Person {
|
||||||
|
|
||||||
List<Item> items = new ArrayList<>();
|
List<Item> items = new ArrayList<>();
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.baeldung.jackson.annotation;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||||
|
|
||||||
|
public class AliasBean {
|
||||||
|
|
||||||
|
@JsonAlias({ "fName", "f_name" })
|
||||||
|
private String firstName;
|
||||||
|
|
||||||
|
private String lastName;
|
||||||
|
|
||||||
|
public AliasBean() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstName() {
|
||||||
|
return firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstName(String firstName) {
|
||||||
|
this.firstName = firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastName() {
|
||||||
|
return lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastName(String lastName) {
|
||||||
|
this.lastName = lastName;
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,6 +14,7 @@ import java.util.TimeZone;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.baeldung.jackson.annotation.AliasBean;
|
||||||
import com.baeldung.jackson.annotation.BeanWithCreator;
|
import com.baeldung.jackson.annotation.BeanWithCreator;
|
||||||
import com.baeldung.jackson.annotation.BeanWithCustomAnnotation;
|
import com.baeldung.jackson.annotation.BeanWithCustomAnnotation;
|
||||||
import com.baeldung.jackson.annotation.BeanWithFilter;
|
import com.baeldung.jackson.annotation.BeanWithFilter;
|
||||||
|
@ -38,6 +39,7 @@ import com.baeldung.jackson.dtos.withEnum.DistanceEnumWithValue;
|
||||||
import com.baeldung.jackson.exception.UserWithRoot;
|
import com.baeldung.jackson.exception.UserWithRoot;
|
||||||
import com.baeldung.jackson.jsonview.Item;
|
import com.baeldung.jackson.jsonview.Item;
|
||||||
import com.baeldung.jackson.jsonview.Views;
|
import com.baeldung.jackson.jsonview.Views;
|
||||||
|
import com.baeldung.jackson.serialization.jsonrootname.Author;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.InjectableValues;
|
import com.fasterxml.jackson.databind.InjectableValues;
|
||||||
import com.fasterxml.jackson.databind.MapperFeature;
|
import com.fasterxml.jackson.databind.MapperFeature;
|
||||||
|
@ -46,6 +48,7 @@ import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ser.FilterProvider;
|
import com.fasterxml.jackson.databind.ser.FilterProvider;
|
||||||
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
|
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
|
||||||
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
|
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
|
||||||
|
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||||
|
|
||||||
public class JacksonAnnotationUnitTest {
|
public class JacksonAnnotationUnitTest {
|
||||||
|
|
||||||
|
@ -372,5 +375,43 @@ public class JacksonAnnotationUnitTest {
|
||||||
assertThat(result, containsString("1"));
|
assertThat(result, containsString("1"));
|
||||||
assertThat(result, containsString("name"));
|
assertThat(result, containsString("name"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenDeserializingUsingJsonAlias_thenCorrect() throws IOException {
|
||||||
|
|
||||||
|
// arrange
|
||||||
|
String json = "{\"fName\": \"Alex\", \"lastName\": \"Theedom\"}";
|
||||||
|
|
||||||
|
// act
|
||||||
|
AliasBean aliasBean = new ObjectMapper().readerFor(AliasBean.class).readValue(json);
|
||||||
|
|
||||||
|
// assert
|
||||||
|
assertThat(aliasBean.getFirstName(), is("Alex"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenSerializingUsingXMLRootNameWithNameSpace_thenCorrect() throws JsonProcessingException {
|
||||||
|
|
||||||
|
// arrange
|
||||||
|
Author author = new Author("Alex", "Theedom");
|
||||||
|
|
||||||
|
// act
|
||||||
|
ObjectMapper mapper = new XmlMapper();
|
||||||
|
mapper = mapper.enable(SerializationFeature.WRAP_ROOT_VALUE).enable(SerializationFeature.INDENT_OUTPUT);
|
||||||
|
String result = mapper.writeValueAsString(author);
|
||||||
|
|
||||||
|
// assert
|
||||||
|
assertThat(result, containsString("<writer xmlns=\"book\">"));
|
||||||
|
|
||||||
|
/*
|
||||||
|
<writer xmlns="book">
|
||||||
|
<id xmlns="">3006b44a-cf62-4cfe-b3d8-30dc6c46ea96</id>
|
||||||
|
<firstName xmlns="">Alex</firstName>
|
||||||
|
<lastName xmlns="">Theedom</lastName>
|
||||||
|
<items xmlns=""/>
|
||||||
|
</writer>
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -1630,7 +1630,7 @@
|
||||||
<javax.servlet.jsp-api.version>2.3.1</javax.servlet.jsp-api.version>
|
<javax.servlet.jsp-api.version>2.3.1</javax.servlet.jsp-api.version>
|
||||||
<jackson-mapper-asl.version>1.9.13</jackson-mapper-asl.version>
|
<jackson-mapper-asl.version>1.9.13</jackson-mapper-asl.version>
|
||||||
<jstl.version>1.2</jstl.version>
|
<jstl.version>1.2</jstl.version>
|
||||||
<jackson.version>2.9.7</jackson.version>
|
<jackson.version>2.9.8</jackson.version>
|
||||||
<commons-fileupload.version>1.3</commons-fileupload.version>
|
<commons-fileupload.version>1.3</commons-fileupload.version>
|
||||||
<junit-platform.version>1.2.0</junit-platform.version>
|
<junit-platform.version>1.2.0</junit-platform.version>
|
||||||
<junit-jupiter.version>5.2.0</junit-jupiter.version>
|
<junit-jupiter.version>5.2.0</junit-jupiter.version>
|
||||||
|
|
Loading…
Reference in New Issue