Gson用"生成json,js抛出错误

时间:2015-07-08 09:27:39

标签: javascript java json gson

我使用Gson创建字符串: new 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方法抛出错误

  

未捕获的SyntaxError:意外的令牌&

我搜索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);
    }

1 个答案:

答案 0 :(得分:0)

(因为stackoverflow注释限制为264个字符而在此处发布)

@wangyiran

我无法重现。这是我的测试:

    @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"}}]

测试输出:

2.3.1

我正在使用Gson版本FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.bodyfragment, new AnotherFragment()); transaction.commit();