Gson 生成 json with ",js throw error
Gson generate json with ",js throw error
我使用 Gson 创建如下字符串:
新 Gson.toJson(englishResult); englishResult 是 List> 类型。
但结果是这样的:
[{"name":"en3","value":234},{"name":"en4","value":135},{"name":"en1","value":335},{"name":"en2","value":310},{"name":"en5","value":1548}]
然后我调用js方法抛出错误
Uncaught SyntaxError: Unexpected token &
我搜索goole,它告诉我"很好json,因为我可以包含escape,但是为什么js会抛出错误?如何解决?
请告诉我一些建议,非常感谢
我的服务器代码是:
public static void pieTestWithData(){
Map<String, Integer> result = getChineseResultMap();
List<Map<String, Object>> englishResult = getFormatteredPieData();
renderArgs.put("resultData", getJson(englishResult));
render();
}
private static String getJson(List<Map<String, Object>> englishResult) {
Gson gson = new GsonBuilder()
.disableHtmlEscaping()
.create();
return gson.toJson(englishResult);
}
(张贴在这里是因为Whosebug评论被限制在264个字符以内)
@wangyiran
我无法重现。这是我的测试:
public class Toto {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
然后
@Test
public void testMe() {
List<Map<String, Object>> englishResult = new ArrayList<>();
Toto toto = new Toto();
toto.setName("Toto it's me");
Map<String, Object> m = new HashMap<String, Object>();
m.put("mapKey", toto);
englishResult.add(m);
Gson gson = new Gson();
String jsonEnglishResult = gson.toJson(englishResult);
System.out.println(jsonEnglishResult);
}
测试输出:
[{"mapKey":{"name":"Toto it\u0027s me"}}]
我使用的是 Gson 版本 2.3.1
。
我使用 Gson 创建如下字符串: 新 Gson.toJson(englishResult); englishResult 是 List> 类型。 但结果是这样的:
[{"name":"en3","value":234},{"name":"en4","value":135},{"name":"en1","value":335},{"name":"en2","value":310},{"name":"en5","value":1548}]
然后我调用js方法抛出错误
Uncaught SyntaxError: Unexpected token &
我搜索goole,它告诉我"很好json,因为我可以包含escape,但是为什么js会抛出错误?如何解决? 请告诉我一些建议,非常感谢
我的服务器代码是:
public static void pieTestWithData(){
Map<String, Integer> result = getChineseResultMap();
List<Map<String, Object>> englishResult = getFormatteredPieData();
renderArgs.put("resultData", getJson(englishResult));
render();
}
private static String getJson(List<Map<String, Object>> englishResult) {
Gson gson = new GsonBuilder()
.disableHtmlEscaping()
.create();
return gson.toJson(englishResult);
}
(张贴在这里是因为Whosebug评论被限制在264个字符以内)
@wangyiran
我无法重现。这是我的测试:
public class Toto {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
然后
@Test
public void testMe() {
List<Map<String, Object>> englishResult = new ArrayList<>();
Toto toto = new Toto();
toto.setName("Toto it's me");
Map<String, Object> m = new HashMap<String, Object>();
m.put("mapKey", toto);
englishResult.add(m);
Gson gson = new Gson();
String jsonEnglishResult = gson.toJson(englishResult);
System.out.println(jsonEnglishResult);
}
测试输出:
[{"mapKey":{"name":"Toto it\u0027s me"}}]
我使用的是 Gson 版本 2.3.1
。