2
나는 Jackson
을 사용하여 JSON을 불변의 사용자 정의 Java 객체로 역 직렬화합니다. 여기잭슨이 JSON의 중복 속성에서 실패하게 만들기
final class DataPoint {
private final int count;
private final int lower;
private final int median;
private final int upper;
@JsonCreator
DataPoint(
@JsonProperty("count") int count,
@JsonProperty("lower") int lower,
@JsonProperty("median") int median,
@JsonProperty("upper") int upper) {
if (count <= 0) {
throw new IllegalArgumentException("...");
}
this.count = count;
this.lower = lower;
this.median = median;
this.upper = upper;
}
// getters...
}
내가 역 직렬화 json으로한다 :
{
"count": 3,
"lower": 2,
"median": 3,
"upper": 4
}
그것은 잘 작동 여기에 클래스입니다. 지금은 JSON, 즉 douplicate lower
속성을 깰 :
{
"count": 4,
"lower": 2,
"lower": 3,
"median": 4,
"upper": 5
}
는 지금은 count == 4
및 lower == 3
를 얻을. 대신, JSON (lower
)에 중복 된 속성이 있기 때문에 Jackson
이 탈색하지 못하도록하고 싶습니다. 내가 중복 프로퍼티 키와 JSON을 desierializing 때 Jackson
이 실패 할 수 있습니다,
String json = "..."; // the second JSON
ObjectMapper mapper = new ObjectMapper().enable(
DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES,
DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES,
DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY)
.disable(DeserializationFeature.ACCEPT_FLOAT_AS_INT);
DataPoint data = mapper.readValue(json, DataPoint.class);
밥상 : 여기
는 역 직렬화 코드?고맙습니다.
대단한 !!! 그것은 작동합니다! Tahnk 당신은 많이 maaan :) – danissimo