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 = "
" + 
17                 "{
" + 
18                 "    "count":20,
" + 
19                 "    "start":0,
" + 
20                 "    "total":641,
" + 
21                 "    "books":[
" + 
22                 "        {
" + 
23                 "            "id":"4866934",
" + 
24                 "            "title":"Python基础教程"
" + 
25                 "        },
" + 
26                 "        {
" + 
27                 "            "id":"3117898",
" + 
28                 "            "title":"Python源码剖析"
" + 
29                 "        },
" + 
30                 "        {
" + 
31                 "            "id":"3948354",
" + 
32                 "            "title":"Python学习手册"
" + 
33                 "        },
" + 
34                 "        {
" + 
35                 "            "id":"3884108",
" + 
36                 "            "title":"可爱的Python"
" + 
37                 "        }
" + 
38                 "        ]
" + 
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}
";
 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}
";
 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);
原文地址:https://www.cnblogs.com/wujianbo123/p/12299849.html