나는 JSON으로 내 POJO를 변환 잭슨 JSON 라이브러리를 사용하고 있습니다 :직렬화 중첩 된 객체 JSON 잭슨
public class A {
public String name;
public B b;
}
public class B {
public Object representation;
public String bar;
}
내가 JSON에 A
의 인스턴스를 직렬화합니다. 나는 Jackson에서 ObjectMapper
클래스를 사용하기 위하여려고하고있다 :
예 : @XmlRootElement
및 @XmlType
같은 주석이 모든 있습니다 JAXB 클래스로 루트 요소를 선택합니다 인트로 스페
objectMapperPropertiesBuilder.setSerializationFeature(SerializationFeature.WRAP_ROOT_VALUE);
objectMapperPropertiesBuilder.setAnnotationIntrospector(new CustomAnnotionIntrospector());
주석을 내가 Object
에 설정 한 경우 표현 :
public class C {
public BigInteger ste;
public String cr;
}
이 코드를 사용하여 내 JSON은 다음과 같이 보일 것이다 :
를rootA: {
"name": "MyExample",
"b": {
"rep": {
"ste": 7,
"cr": "C1"
},
"bar": "something"
}
}
하지만 중첩 된 Object
에도 루트 요소를 추가하고 싶습니다. Object는 임의의 사용자 정의 POJO가 될 수 있습니다.
그래서이 경우에는 JSON 변환에 C
클래스의 루트 요소를 추가하고 싶습니다. 따라서 :
rootA: {
"name": "MyExample",
"b": {
"rep": {
"rootC": {
"ste": 7,
"cr": "C1"
}
},
"bar": "something"
}
}
어떻게 중첩 된 객체의 루트 요소를 JSON 변환에 추가 할 수 있습니까? 지정한 objectMapper
속성은 모두 class A
에 적용됩니다. 중첩 된 객체에 일부 속성을 적용하기 위해 사용자 정의 직렬 변환기를 작성해야합니까?
질문에 입력 한 JSON이 유효하지 않습니다. 당신은 그들 [여기] (http://jsonlint.com/)을 확인할 수 있습니다. –