关于生成json字符串

2019-12-20  本文已影响0人  钦_79f7
Map<String, Object> data = new ArrayMap<>();
List<Map<String, String>> maps = new ArrayList<>();
try {
    JSONArray jsonArray = new JSONArray();

    for (int i = 0; i < 2; i++) {
        Map<String, String> map = new ArrayMap<>();
        map.put("name", "jack");
        map.put("phone", "12306");
        maps.add(map);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "jack");
        jsonObject.put("phone", "12306");
        jsonArray.put(jsonObject);
    }
    data.put("data", new JSONArray(maps));
    Logs.d(new JSONArray(maps));
    Logs.d(new JSONObject(data));
    Logs.d(new JSONObject().put("data", jsonArray.toString()));
} catch (JSONException e) {                
    e.printStackTrace();
}

通过上述代码测试发现:

此种是上述代码map方式生成的json (标准格式的json)

{"data":[{"name":"jack","phone":"12306"},{"name":"jack","phone":"12306"}]}

此是JSONObject方式生成的json。(非标准格式的json)

{"data":"[{\"name\":\"jack\",\"phone\":\"12306\"},{\"name\":\"jack\",\"phone\":\"12306\"}]"}

注意:有区别的原因不在map与JSONObject的区别,而是在于装填 data 字段时,其value的put方式。请注意一个是直接将json数组对象直接put进去,一个是将json数组作为一个字符串put进去,进而导致了两种不同的结果。

上一篇 下一篇

猜你喜欢

热点阅读