Java如何快速构造JSON字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java如何快速构造JSON字符串相关的知识,希望对你有一定的参考价值。

Google Gson来构造的JSON字符串里面,保留了传递参数key/value的顺序;
FastJson没有保留顺序(这个是符合JSON国际标准的,本身没有错误。是SugarCRM REST API有bug,要求传递过来的参数是按照它的顺序要求的)。

Google Gson代码片段:
import com.google.gson.Gson;
...
LinkedHashMap map = new LinkedHashMap();
map.put(f1,xxx);
map.put(f2,xxxx);
map.put(f3,xxxxx);
Gson gson = new Gson();
String json = gson.toJson(map);,>,>

Alibaba FastJson代码片段:
import com.alibaba.fastjson.JSONObject;
JSONObject jsonObject = new JSONObject();
jsonObject.put(f1, xxx);
jsonObject.put(f2, xxx);
String json = jsonObject.toJSONString();
参考技术A 用谷歌开发的Gosn包即可,或者自己写
思路:
判断对象类型,Map List 普通bean
分别迭代循环构造(拼接字符串)
利用递归,循环迭代即可。

java-com.alibaba.fastjson快速处理json字符串转成list类型

 

public static List<Map<String, String>> jsonToList(String json) {
        JSONReader reader = new JSONReader(new StringReader(json));// 已流的方式处理,这里很快
        reader.startArray();
        List<Map<String, String>> rsList = new ArrayList<Map<String, String>>();
        Map<String, String> map = null;
        int i = 0;
        while (reader.hasNext()) {
            i++;
            reader.startObject();// 这边反序列化也是极速
            map = new HashMap<String, String>();
            while (reader.hasNext()) {
                String arrayListItemKey = reader.readString();
                String arrayListItemValue = reader.readObject().toString();
                map.put(arrayListItemKey, arrayListItemValue);
            }
            rsList.add(map);
            reader.endObject();
        }
        reader.endArray();
        return rsList;
    }

 

以上是关于Java如何快速构造JSON字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何将这个JSON字符串转化成list对象

如何从来自api响应的json字符串构造对象列表?

JSON 以自定义格式序列化日期(无法从字符串值构造 java.util.Date 的实例)

如何在 React Native 中构造 POST 请求正文而不是字符串化的 json 而是 json?

如何解析JSON使用Play框架

java-com.alibaba.fastjson快速处理json字符串转成list类型