String、JSONObject、JSONArray之间互相转换

首先在maven中添加阿里的fastjson依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.68</version>
</dependency>

1.String转JSONObject

格式:JSONObject parseObject(String text)
其中:text为JSONObject格式的字符串,如:{"k1":"v1","k2":"v2"}

String s1 = "{\"datasetId\":602,\"cfg\":\"\"}";
JSONObject jsonObject = JSONObject.parseObject(s1);

2.String转JSONArray

格式:JSONArray parseArray(String text)
其中:text为JSONArray格式的字符串,如:[{"k1":"v1","k2":"v2"},{"k3":"v3"}]

String s2 = "[{\"column\":\"amount\",\"aggType\":\"sum\"}]";
JSONArray jsonArray = JSONArray.parseArray(s2);

3.JSONObject中的数据提取为JSONArray

格式:JSONArray getJSONArray(String key)
其中:key为JSONObject对象中的某个key,且对应的value应是JSONArray格式的,如:{"k1":[{"k2":"v2"},{"k3":"v3"}]}

String s3 = "{\"datasetId\":602,\"values\":[{\"column\":\"amount\",\"aggType\":\"sum\"}]}";
JSONObject jsonObject3 = JSONObject.parseObject(s3);
JSONArray jsonArray3 = jsonObject3.getJSONArray("values");

4.JSONArray提取为JSONObject

格式:JSONObject getJSONObject(int index)
其中:getJSONObject的对象为array类型,index为数组下标

String s4 = "[{\"columnName\":\"assets_group\",\"filterType\":\"≠\",\"values\":[\"苹果\"]},{\"columnName\":\"audit_date\",\"filterType\":\"[a,b]\",\"values\":[\"2020-03-15\",\"2020-04-15\"]},null]";
JSONArray jsonArray4 = JSONArray.parseArray(s4);
JSONObject jsonObject4 = jsonArray4.getJSONObject(0);

5.JSONObject获取value

格式:Object get(Object key)

jsonObject.get("datasetId")

6.Map转JSONstring

直接返回map其实就是json格式

JSONUtils.toJSONString(map);

7.JSON转实体类

格式:JSON.parseObject(string,A.class)

DatasourceConfig datasourceConfig = JSON.parseObject(config, DatasourceConfig.class);

8.实体类转JSON

JSONObject.toJSONString(object)

 

参考:https://www.cnblogs.com/ljangle/p/11047111.html

 

版权声明:本文为jsbylibo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。