【问题标题】:Gson generate json with ",js throw errorGson 生成带有 ",js 抛出错误的 json
【发布时间】:2015-09-26 02:59:40
【问题描述】:

我使用 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,它告诉我 &quot 是好的 json,因为我可以包含转义,但是为什么 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);
    }

【问题讨论】:

  • 你能粘贴完整的json数据吗?
  • 是的,粘贴一个错误的 JSON 示例。
  • 可能是一个类似的问题here。一个问题:您确定在调用 toJson(...) 之前不会将您的 List (englishResult) 转换为 String 吗?您需要直接传递 List 对象
  • @boly38 我已经添加了代码

标签: javascript java json gson


【解决方案1】:

(此处发布是因为 stackoverflow cmets 限制为 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 2012-03-26
    • 2014-02-28
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多