JSON 문자열에서 중복 얻을 필드 :잭슨의 사용 : 내가 <a href="http://jackson.codehaus.org/" rel="nofollow">Jackson</a> 주석과 POJO가
Person p = new Person();
p.setFirstName("John");
p.setLastName("Smith");
//parse to json string
ObjectMapper mapper = new ObjectMapper();
String personJson = mapper.writeValueAsString(p);
그러나 :
public class Person {
@JsonProperty("first_name")
private String firstName;
@JsonProperty("last_name")
private String lastName;
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
그때 나는 Person
인스턴스가 JSON 문자열로 구문 분석 & 생성 json string (personJson
) 다음을 얻었습니다 :
{"first_name":"John","last_name":"Smith","firstName":"John","lastName":"Smith"}
복제 된 필드가 왜 "first_name
"& "firstName
"이 되니, "last_name
"& "lastName
"을 JSON 문자열로 만드시겠습니까?
나는 또한 시도
===== 업데이트 === :
주석 :
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE,
isGetterVisibility = JsonAutoDetect.Visibility.NONE)
ObjectMapper :
ObjectMapper mapper = new ObjectMapper();
mapper.getSerializationConfig().getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE);
하지만 여전히를 얻을 수 다른 POJO에서 JSON의 중복 된 속성 ...
잭슨이 코드는 2.3.2 테스트 : 그것을 제거하기 위해, 나는 단지 인
mapper
setVisibilityChecker
에 한 번 더 제한을 추가 ":"Smith "}'. 그런데 잭슨은 [github] (https://github.com/FasterXML/jackson)로 옮겼습니다. –