我剛剛開始使用傑克遜,因爲它與Spring框架集成,並且遇到了單引號引起的問題。當試圖在頁面上用jQuery解析JSON時,我得到一個JavaScript錯誤"SyntaxError: missing) after argument list"
。我習慣於使用Gson來序列化我的對象,並且不會遇到這個問題,因爲Gson會用Unicode \ u0027替換單引號。傑克遜序列化不能正確處理單引號
例如;
的Java
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
在傑克遜 [{"person":{"firstName":"James","lastName":"O'tool"}}]
在GSON [{"person":{"firstName":"James","lastName":"O\u0027tool"}}]
的JavaScript;
// This is where the JavaScript fails with the Jackson serialized object
$.parseJSON('${requestScope.person}');
我找了一個解決方案,但無法找到一個。 有誰知道是否可以配置傑克遜像Gson一樣處理單引號?
謝謝你的時間。
不要嘗試在字符串文本中輸出JSON(當然是轉義它們)並解析它們。只輸出對象文字! – Bergi 2013-02-23 17:27:09
對不起,我忘記了這不是ajax調用,而是在JSP上解析JSON對象。如果這是一個直接的Ajax調用,那就不會有問題了。 – Jason 2013-02-23 23:44:10
不,你正試圖用JavaScript解析一個(錯誤轉義的)JSON字符串(不是JSP) – Bergi 2013-02-23 23:45:41