REST API에서 Java 객체에 매핑되는 Json을받습니다.
@RequestMapping(value = "/example", method = RequestMethod.POST)
public @ResponseBody
ReturnObject doReturn(@RequestBody ProblemObject requestBody)
개체는 간단합니다.
public class ProblemObject implements Serializable {
private String field1;
private String field2;
public ProblemObject(String field2) {
this.field2 = field2;
}
public ProblemObject(String field1, String field2) {
this.field1 = field1;
this.field2 = field2;
}
}
문제는 Jackson이 잘못된 형식의 JSON조차도 역 직렬화하려고 시도한다는 것입니다. 예를 들어 다음과 같은 결과는 좋지 않습니다.
"field1": "test",
"field2": "test"
}
여는 중괄호가 없습니다. 이로 인해 개체가 "field2"값을 갖는 field1 및 null 인 field2로 매핑됩니다.
또한 더 나쁜 결과로 쉼표를 허용하지 않습니다.
현재로서는 내가 생각할 수있는 유일한 대안은 맞춤형 디시리얼라이저를 구현하는 것이지만 최적의 imho는 아닙니다.
Jackson을 더 엄격하게 만드는 방법이 있습니까?
이것은 분명히 Jackson의 TokenBuffer 버그입니다. 문제가 열렸습니다과 잭슨 dev에 버그를 확인했습니다.
단일 String 생성자 때문입니다. 가능한 경우 생성자를 제거하는 것은 임시 해결 방법입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다