fastjson json数据处理

 jar包

1         <dependency>
2             <groupId>com.alibaba</groupId>
3             <artifactId>fastjson</artifactId>
4             <version>1.2.58</version>
5         </dependency>
View Code

 

 JsonObject

 1 package com.baidu.com;
 2 
 3 
 4 
 5 import java.util.Map;
 6 
 7 import com.alibaba.fastjson.JSON;
 8 import com.alibaba.fastjson.JSONArray;
 9 import com.alibaba.fastjson.JSONObject;
10 
11 
12 public class JsonTest {
13 
14     public static void main(String[] args) {
15         // TODO Auto-generated method stub
16         String jsonString = "\r\n" + 
17                 "{\r\n" + 
18                 "    \"count\":20,\r\n" + 
19                 "    \"start\":0,\r\n" + 
20                 "    \"total\":641,\r\n" + 
21                 "    \"books\":[\r\n" + 
22                 "        {\r\n" + 
23                 "            \"id\":\"4866934\",\r\n" + 
24                 "            \"title\":\"Python基础教程\"\r\n" + 
25                 "        },\r\n" + 
26                 "        {\r\n" + 
27                 "            \"id\":\"3117898\",\r\n" + 
28                 "            \"title\":\"Python源码剖析\"\r\n" + 
29                 "        },\r\n" + 
30                 "        {\r\n" + 
31                 "            \"id\":\"3948354\",\r\n" + 
32                 "            \"title\":\"Python学习手册\"\r\n" + 
33                 "        },\r\n" + 
34                 "        {\r\n" + 
35                 "            \"id\":\"3884108\",\r\n" + 
36                 "            \"title\":\"可爱的Python\"\r\n" + 
37                 "        }\r\n" + 
38                 "        ]\r\n" + 
39                 "}";
40         //串转json
41         JSONObject result01 = (JSONObject) JSON.parse(jsonString);
42         System.out.println(result01);
43 
44         //获取json数组
45         System.out.println(result01.get("total"));
46         //判断json的value的数据类型
47         System.out.println(result01.get("total").toString().startsWith("641"));
48         //result01.get
49         JSONArray result02 = result01.getJSONArray("employees");
50     
51         System.out.println("33");
52         
53         // json数据中下一维度所有key字段获取
54         JSONObject jsonObj = JSON.parseObject(jsonString);
55         for (Map.Entry<String, Object> entry : jsonObj.entrySet()) {
56                System.out.println(entry.getKey() + ":" + entry.getValue());
57 
58         }    
59     }
60 
61 }
View Code

 JsonXpath

 1         //jsonpath
 2         //判断串是否是json格式 json对象  json数组
 3         //String string2 = "dd";
 4         String string2 = "{\"total\":641,\"books\":[{\"id\":\"4866934\",\"title\":\"Python基础教程\"},{\"id\":\"3117898\",\"title\":\"Python源码剖析\"},{\"id\":\"3948354\",\"title\":\"Python学习手册\"},{\"id\":\"3884108\",\"title\":\"可爱的Python\"}],\"count\":20,\"start\":0}\r\n";
 5         //String string2 = "[{\"id\":\"4866934\",\"title\":\"Python基础教程\"},{\"id\":\"3117898\",\"title\":\"Python源码剖析\"},{\"id\":\"3948354\",\"title\":\"Python学习手册\"},{\"id\":\"3884108\",\"title\":\"可爱的Python\"}]";
 6         System.out.println(JSON.isValid(string2));
 7         System.out.println(JSON.isValidObject(string2));
 8         System.out.println(JSON.isValidArray(string2));
 9         
10         int result03 = (Integer) JSONPath.read(string2, "$.total");
11         int result031 = (Integer) JSONPath.read(string2, "total");
12         List<Integer> result0311 = (List<Integer>) JSONPath.read(string2, "books.id");
13         List<Integer> result03111 = (List<Integer>) JSONPath.read(string2, "..id");//相对路径
14         System.out.println(result03);
15         System.out.println(result031);
16         System.out.println(result0311.size()+" "+result0311.get(0));
17         System.out.println(result03111.size()+" "+result03111.get(0));
View Code

Json数据转换

 1         //json数据转换
 2         //String string21 = "{\"total\":641,\"books\":[{\"id\":\"4866934\",\"title\":\"Python基础教程\"},{\"id\":\"3117898\",\"title\":\"Python源码剖析\"},{\"id\":\"3948354\",\"title\":\"Python学习手册\"},{\"id\":\"3884108\",\"title\":\"可爱的Python\"}],\"count\":20,\"start\":0}\r\n";
 3         String string21 = "{\"zz\":\"dd\",\"total\":641,\"books\":[{\"zz\":\"dd\",\"id\":\"4866934\",\"title\":\"Python基础教程\"},{\"zz\":\"dd\",\"id\":\"3117898\",\"title\":\"Python源码剖析\"},{\"id\":\"3948354\",\"zz\":\"dd\",\"title\":\"Python学习手册\"},{\"zz\":\"dd\",\"id\":\"3884108\",\"title\":\"可爱的Python\"}],\"count\":20,\"start\":0}";
 4         JSONObject result04 = (JSONObject)JSON.parse(string21);
 5         Map result041 =  JSON.parseObject(string21, TreeMap.class);//下一层级转换成map 并进行排序
 6         String result05 = JSON.toJSONString(JSON.parse(string21));
 7         
 8         System.out.println(result04);
 9         System.out.println(result041);
10         System.out.println(result05);
11         
12         //自己构造json
13         JSONObject jsonObject= new JSONObject();
14         jsonObject.put("ds", "s");
15         jsonObject.put("dds", "ss");
16         System.out.println(jsonObject);

 

 Json按照一个规则进行key排序

1         //json数据按照A-Z排序
2         //String string212 = "{\"zz\":\"dd\",\"total\":641,\"books\":[{\"zz\":\"dd\",\"id\":\"4866934\",\"title\":\"Python基础教程\"},{\"zz\":\"dd\",\"id\":\"3117898\",\"title\":\"Python源码剖析\"},{\"id\":\"3948354\",\"zz\":\"dd\",\"title\":\"Python学习手册\"},{\"zz\":\"dd\",\"id\":\"3884108\",\"title\":\"可爱的Python\"}],\"count\":20,\"start\":0}";
3         String string212 = "{\"zz\":\"dd\",\"Zz\":\"dd\",\"ZA\":\"dd\",\"total\":641,\"books\":[{\"zz\":\"dd\",\"id\":\"4866934\",\"title\":\"Python基础教程\"},{\"zz\":\"dd\",\"id\":\"3117898\",\"title\":\"Python源码剖析\"},{\"id\":\"3948354\",\"zz\":\"dd\",\"title\":\"Python学习手册\"},{\"zz\":\"dd\",\"id\":\"3884108\",\"title\":\"可爱的Python\"}],\"count\":20,\"start\":0}";
4         System.out.println(string212);
5         String tt =JSONObject.toJSONString((JSONObject)JSON.parse(string212),SerializerFeature.SortField.MapSortField);
6         System.out.println(tt);

 

posted @ 2020-02-12 17:26  18513757531  阅读(402)  评论(0编辑  收藏  举报