스프링 프레임 워크와의 통합으로 인해 Jackson을 사용하기 시작했으며 값에 작은 따옴표가있는 문제가 발생했습니다. JSON을 페이지에서 jQuery와 구문 분석하려고하면 JavaScript 오류 "SyntaxError: missing) after argument list"
가 발생합니다. 저는 Gson을 사용하여 객체를 직렬화하는 데 익숙합니다. Gson이 작은 따옴표를 Unicode \ u0027로 바꾸므로이 문제가 발생하지 않습니다.Jackson 직렬화가 작은 따옴표를 제대로 처리하지 않음
예 :
자바
public final class Person {
private String firstName;
private String lastName;
public Person() {}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getFirstName() {
return firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getLastName() {
return lastName;
}
}
잭슨 에서 JSON
GSON [{"person":{"firstName":"James","lastName":"O\u0027tool"}}]
자바 스크립트에서 [{"person":{"firstName":"James","lastName":"O'tool"}}]
;
// This is where the JavaScript fails with the Jackson serialized object
$.parseJSON('${requestScope.person}');
해결책을 찾았지만 찾을 수 없습니다. Gson이하는 것과 같은 방법으로 작은 따옴표를 처리하도록 Jackson을 구성 할 수 있습니까?
감사합니다.
JSON을 문자열 리터럴로 출력하지 말고 (물론 이스케이프 처리하지 마세요) 구문 분석하십시오. 그냥 개체 리터럴을 출력! – Bergi
죄송합니다, 이것은 ajax 호출이 아니며 JSON 객체의 구문 분석이 JSP에서 발생한다는 것을 잊었습니다. 이것이 곧바로 아약스 전화라면 문제가되지 않을 것입니다. – Jason
아니요, JSP가 아닌 JavaScript로 (잘못 이스케이프 된) JSON 문자열을 구문 분석하려고합니다. – Bergi