지도가있는 샘플 pojo가 있습니다.Jackson을 사용하여 JSON ("key": "value", "key1": "value1"}을 "key": 값, "key1": "value1"Java 맵에 매핑
class Sample {
private Integer id;
private String name;
private Map<String,Object> map;
public Map<String,Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
이 POJO를 Jackson을 사용하여 JSON으로 작성하면 다음과 같은 결과가 나타납니다. 사용자 정의 시리얼 라이저를 사용하지 않고 할 수있는 방법이
{
"id" : 1234,
"name" : "abc",
"map" : {
"key1" : {
"field" : "value",
"field1" : "value"
},
"key2" : [
{
"something" : "a",
"somethingElse" : 1
},
{
"something" : "b",
"somethingElse" : 2
}
]
}
}
나는이지도
{
"id" : 1234,
"name" : "abc",
"key1" : {
"field" : "value",
"field1" : "value"
},
"key2" : [
{
"something" : "a",
"somethingElse" : 1
},
{
"something" : "b",
"somethingElse" : 2
}
]
}
로 작성하고 싶은 동안 있습니까? 당신이 잭슨을 사용할 수있는 경우
왜지도에 래퍼 클래스가 있습니까? 직접 JSON을 얻으려면 맵을 직렬화 할 수 없습니까? –
그래서 그냥 외부 "지도"를 없애고 싶습니다 : {...}'? 이 경우 랩퍼가 아닌 맵 자체를 직렬화하면됩니다. 해당 래퍼가 다른 필드도 포함하는 경우 해당 "맵"수준을 제거하지 않는 것이 좋습니다. – Thomas
@ 토마스 예 "지도"를 제거하고 싶습니다 : {...}. 그리고 mixin이나 jackon의 propertyNamingStrategy와 같은 맞춤식 시리얼 라이저 이외의 옵션을 탐색 중입니다 –