• 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);
  • 相关阅读:
    第四章
    第三章
    第二章
    实验5-2: 编制程序,输入m、n(m≥n≥0)后,计算下列表达式的值并输出。 要求将计算阶乘的运算编写作函数fact(n),函数返回值的类型为float
    作业
    多人电费
    单人电费
    圆柱体积
    圆面积
    第七章
  • 原文地址:https://www.cnblogs.com/wujianbo123/p/12299849.html
Copyright © 2020-2023  润新知