基于阿里的Json解析包FastJson解析Json字符串

JAVA解析Json
Json的结构
1 []中括号代表的是一个数组;
2 {}大括号代表的是一个对象
3 双引号“”表示的是属性值
4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。
解析方法:
//获取属性值 getString
//获取数组 getJsonArray
//获取对象 getJsonObject
pom添加依赖

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

以下我们解析两个json
第一个json:

{
  "paramz": {
    "feeds": [
      {
        "id": 299076,
        "oid": 288340,
        "category": "article",
        "data": {
          "subject": "荔枝新闻3.0:不止是阅读",
          "summary": "江苏广电旗下资讯类手机应用“荔枝新闻”于近期推出全新升级换代的3.0版。",
          "cover": "/Attachs/Article/288340/3e8e2c397c70469f8845fad73aa38165_padmini.JPG",
          "pic": "",
          "format": "txt",
          "changed": "2015-09-22 16:01:41"
        }
      },
      {
       "name": "axb"
       }
    ],
    "PageIndex": 1,
    "PageSize": 20,
    "TotalCount": 53521,
    "TotalPage": 2677
  }
,
"student": {
   "id": 1  
 }
}

直接上代码,该代码包含该json中的所有数据:

package jsonAnalysis;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class jsonAnalysis {
    public static void main(String[] args) {

        String str="{\n" +
                "  \"paramz\": {\n" +
                "    \"feeds\": [\n" +
                "      {\n" +
                "        \"id\": 299076,\n" +
                "        \"oid\": 288340,\n" +
                "        \"category\": \"article\",\n" +
                "        \"data\": {\n" +
                "          \"subject\": \"荔枝新闻3.0:不止是阅读\",\n" +
                "          \"summary\": \"江苏广电旗下资讯类手机应用“荔枝新闻”于近期推出全新升级换代的3.0版。\",\n" +
                "          \"cover\": \"/Attachs/Article/288340/3e8e2c397c70469f8845fad73aa38165_padmini.JPG\",\n" +
                "          \"pic\": \"\",\n" +
                "          \"format\": \"txt\",\n" +
                "          \"changed\": \"2015-09-22 16:01:41\"\n" +
                "        }\n" +
                "      },\n" +
                "      {\n" +
                "       \"name\": \"axb\"\n" +
                "       }\n" +
                "    ],\n" +
                "    \"PageIndex\": 1,\n" +
                "    \"PageSize\": 20,\n" +
                "    \"TotalCount\": 53521,\n" +
                "    \"TotalPage\": 2677\n" +
                "  }\n" +
                ",\n" +
                "\"student\": {\n" +
                "   \"id\": 1  \n" +
                " }\n" +
                "}\n";
        JSONObject object = JSON.parseObject(str);
        JSONObject student = object.getJSONObject("student");
        System.out.println("---------studentID--------"+student.getString("id"));
        JSONObject paramz = object.getJSONObject("paramz");
        System.out.println("---------PageIndex--------"+paramz.getString("PageIndex"));
        System.out.println("---------PageSize--------"+paramz.getString("PageSize"));
        System.out.println("---------TotalCount--------"+paramz.getString("TotalCount"));
        System.out.println("---------TotalPage--------"+paramz.getString("TotalPage"));
        JSONArray feeds = paramz.getJSONArray("feeds");

             JSONObject jsonObject = feeds.getJSONObject(0);
            System.out.println("---------id--------"+jsonObject.getString("id"));
            System.out.println("---------oid--------"+jsonObject.getString("oid"));
            System.out.println("---------category--------"+jsonObject.getString("category"));
            JSONObject data = jsonObject.getJSONObject("data");
            System.out.println("---------subject--------"+data.getString("subject"));
            System.out.println("---------summary--------"+data.getString("summary"));
            System.out.println("---------cover--------"+data.getString("cover"));
            System.out.println("---------pic--------"+data.getString("pic"));
            System.out.println("---------format--------"+data.getString("format"));
            System.out.println("---------changed--------"+data.getString("changed"));
            JSONObject jsonObject1 = feeds.getJSONObject(1);
            System.out.println("---------name--------"+jsonObject1.getString("name"));
            
    }
}

第二个json

{
    "version":"1.0",
    "user":"root",
    "timestamp":1592978784,
    "duration":49537,
    "jobids":[
        "job_1592960604436_0003"
    ],
    "engine":"mr",
    "database":"liusir",
    "hash":"b609faf693b68ee2adcc9fd6a6401045",
    "querytext":"insert into table liusir.test3 select x.id,x.name,y.location  from liusir.test1 x join liusir.test2 y on x.id=y.id",
    "inputs":[
        "liusir.test1",
        "liusir.test2"
    ],
    "outputs":[
        "liusir.test3"
    ],
    "edges":[
        {
            "sources":[
                3
            ],
            "targets":[
                0
            ],
            "edgetype":"projection"
        },
        {
            "sources":[
                4
            ],
            "targets":[
                1
            ],
            "edgetype":"projection"
        },
        {
            "sources":[
                5
            ],
            "targets":[
                2
            ],
            "edgetype":"projection"
        },
        {
            "sources":[
                3
            ],
            "targets":[
                0,
                1,
                2
            ],
            "expression":"x.id is not null",
            "edgetype":"predicate"
        },
        {
            "sources":[
                3,
                6
            ],
            "targets":[
                0,
                1,
                2
            ],
            "expression":"(x.id = y.id)",
            "edgetype":"predicate"
        },
        {
            "sources":[
                6
            ],
            "targets":[
                0,
                1,
                2
            ],
            "expression":"y.id is not null",
            "edgetype":"predicate"
        }
    ],
    "vertices":[
        {
            "id":0,
            "vertextype":"column",
            "vertexid":"liusir.test3.id"
        },
        {
            "id":1,
            "vertextype":"column",
            "vertexid":"liusir.test3.name"
        },
        {
            "id":2,
            "vertextype":"column",
            "vertexid":"liusir.test3.location"
        },
        {
            "id":3,
            "vertextype":"column",
            "vertexid":"liusir.test1.id"
        },
        {
            "id":4,
            "vertextype":"column",
            "vertexid":"liusir.test1.name"
        },
        {
            "id":5,
            "vertextype":"column",
            "vertexid":"liusir.test2.location"
        },
        {
            "id":6,
            "vertextype":"column",
            "vertexid":"liusir.test2.id"
        }
    ]
}

直接上代码,该代码包含该json中的所有数据:

package jsonAnalysis;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class jsonAnalysis {
    public static void main(String[] args) {

        String str="{\n" +
                "    \"version\":\"1.0\",\n" +
                "    \"user\":\"root\",\n" +
                "    \"timestamp\":1592978784,\n" +
                "    \"duration\":49537,\n" +
                "    \"jobids\":[\n" +
                "        \"job_1592960604436_0003\"\n" +
                "    ],\n" +
                "    \"engine\":\"mr\",\n" +
                "    \"database\":\"liusir\",\n" +
                "    \"hash\":\"b609faf693b68ee2adcc9fd6a6401045\",\n" +
                "    \"querytext\":\"insert into table liusir.test3 select x.id,x.name,y.location  from liusir.test1 x join liusir.test2 y on x.id=y.id\",\n" +
                "    \"inputs\":[\n" +
                "        \"liusir.test1\",\n" +
                "        \"liusir.test2\"\n" +
                "    ],\n" +
                "    \"outputs\":[\n" +
                "        \"liusir.test3\"\n" +
                "    ],\n" +
                "    \"edges\":[\n" +
                "        {\n" +
                "            \"sources\":[\n" +
                "                3\n" +
                "            ],\n" +
                "            \"targets\":[\n" +
                "                0\n" +
                "            ],\n" +
                "            \"edgetype\":\"projection\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"sources\":[\n" +
                "                4\n" +
                "            ],\n" +
                "            \"targets\":[\n" +
                "                1\n" +
                "            ],\n" +
                "            \"edgetype\":\"projection\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"sources\":[\n" +
                "                5\n" +
                "            ],\n" +
                "            \"targets\":[\n" +
                "                2\n" +
                "            ],\n" +
                "            \"edgetype\":\"projection\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"sources\":[\n" +
                "                3\n" +
                "            ],\n" +
                "            \"targets\":[\n" +
                "                0,\n" +
                "                1,\n" +
                "                2\n" +
                "            ],\n" +
                "            \"expression\":\"x.id is not null\",\n" +
                "            \"edgetype\":\"predicate\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"sources\":[\n" +
                "                3,\n" +
                "                6\n" +
                "            ],\n" +
                "            \"targets\":[\n" +
                "                0,\n" +
                "                1,\n" +
                "                2\n" +
                "            ],\n" +
                "            \"expression\":\"(x.id = y.id)\",\n" +
                "            \"edgetype\":\"predicate\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"sources\":[\n" +
                "                6\n" +
                "            ],\n" +
                "            \"targets\":[\n" +
                "                0,\n" +
                "                1,\n" +
                "                2\n" +
                "            ],\n" +
                "            \"expression\":\"y.id is not null\",\n" +
                "            \"edgetype\":\"predicate\"\n" +
                "        }\n" +
                "    ],\n" +
                "    \"vertices\":[\n" +
                "        {\n" +
                "            \"id\":0,\n" +
                "            \"vertextype\":\"column\",\n" +
                "            \"vertexid\":\"liusir.test3.id\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"id\":1,\n" +
                "            \"vertextype\":\"column\",\n" +
                "            \"vertexid\":\"liusir.test3.name\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"id\":2,\n" +
                "            \"vertextype\":\"column\",\n" +
                "            \"vertexid\":\"liusir.test3.location\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"id\":3,\n" +
                "            \"vertextype\":\"column\",\n" +
                "            \"vertexid\":\"liusir.test1.id\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"id\":4,\n" +
                "            \"vertextype\":\"column\",\n" +
                "            \"vertexid\":\"liusir.test1.name\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"id\":5,\n" +
                "            \"vertextype\":\"column\",\n" +
                "            \"vertexid\":\"liusir.test2.location\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"id\":6,\n" +
                "            \"vertextype\":\"column\",\n" +
                "            \"vertexid\":\"liusir.test2.id\"\n" +
                "        }\n" +
                "    ]\n" +
                "}";
        JSONObject object = JSON.parseObject(str);
        System.out.println("---------version--------"+object.getString("version"));
        System.out.println("---------user--------"+object.getString("user"));
        System.out.println("---------timestamp--------"+object.getString("timestamp"));
        System.out.println("---------duration--------"+object.getString("duration"));
        JSONArray jobids = object.getJSONArray("jobids");
        System.out.println("---------jobids--------"+jobids.get(0));
        System.out.println("---------engine--------"+object.getString("engine"));
        System.out.println("---------database--------"+object.getString("database"));
        System.out.println("---------hash--------"+object.getString("hash"));
        System.out.println("---------querytext--------"+object.getString("querytext"));
        JSONArray inputs = object.getJSONArray("inputs");
        System.out.println("---------inputs--------"+inputs.get(0)+"-"+inputs.get(1));
        JSONArray outputs = object.getJSONArray("outputs");
        System.out.println("---------outputs--------"+outputs.get(0));
        JSONArray edges = object.getJSONArray("edges");
        JSONObject jsonObject1 = edges.getJSONObject(0);
        System.out.println("-------sources1----"+jsonObject1.getJSONArray("sources").get(0));
        System.out.println("-------targets1----"+jsonObject1.getJSONArray("targets").get(0));
        System.out.println("-------sources1----"+jsonObject1.getString("edgetype"));
        JSONObject jsonObject2 = edges.getJSONObject(1);
        System.out.println("-------sources2----"+jsonObject2.getJSONArray("sources").get(0));
        System.out.println("-------targets2----"+jsonObject2.getJSONArray("targets").get(0));
        System.out.println("-------sources2----"+jsonObject2.getString("edgetype"));
        JSONObject jsonObject3 = edges.getJSONObject(2);
        System.out.println("-------sources3----"+jsonObject3.getJSONArray("sources").get(0));
        System.out.println("-------targets3----"+jsonObject3.getJSONArray("targets").get(0));
        System.out.println("-------sources3----"+jsonObject3.getString("edgetype"));
        JSONObject jsonObject4 = edges.getJSONObject(3);
        System.out.println("-------sources4----"+jsonObject4.getJSONArray("sources").get(0));
        System.out.println("-------targets4----"+jsonObject4.getJSONArray("targets").get(0));
        System.out.println("-------sources4----"+jsonObject4.getString("expression"));
        System.out.println("-------sources4----"+jsonObject4.getString("edgetype"));
        JSONObject jsonObject5 = edges.getJSONObject(4);
        System.out.println("-------sources5----"+jsonObject5.getJSONArray("sources").get(0));
        System.out.println("-------targets5----"+jsonObject5.getJSONArray("targets").get(0));
        System.out.println("-------sources5----"+jsonObject5.getString("expression"));
        System.out.println("-------sources5----"+jsonObject5.getString("edgetype"));
        JSONObject jsonObject6 = edges.getJSONObject(5);
        System.out.println("-------sources6----"+jsonObject6.getJSONArray("sources").get(0));
        System.out.println("-------targets6----"+jsonObject6.getJSONArray("targets").get(0));
        System.out.println("-------sources6----"+jsonObject6.getString("expression"));
        System.out.println("-------sources6----"+jsonObject6.getString("edgetype"));
        JSONArray vertices = object.getJSONArray("vertices");
        JSONObject jsonObject11 = vertices.getJSONObject(0);
        System.out.println("-------id11----"+jsonObject11.getString("id"));
        System.out.println("-------vertextype11----"+jsonObject11.getString("vertextype"));
        System.out.println("-------vertexid11----"+jsonObject11.getString("vertexid"));
        JSONObject jsonObject12 = vertices.getJSONObject(1);
        System.out.println("-------id12----"+jsonObject12.getString("id"));
        System.out.println("-------vertextype12----"+jsonObject12.getString("vertextype"));
        System.out.println("-------vertexid12----"+jsonObject12.getString("vertexid"));
        JSONObject jsonObject13 = vertices.getJSONObject(2);
        System.out.println("-------id13----"+jsonObject13.getString("id"));
        System.out.println("-------vertextype13----"+jsonObject13.getString("vertextype"));
        System.out.println("-------vertexid13----"+jsonObject13.getString("vertexid"));
        JSONObject jsonObject14 = vertices.getJSONObject(3);
        System.out.println("-------id14----"+jsonObject14.getString("id"));
        System.out.println("-------vertextype14----"+jsonObject14.getString("vertextype"));
        System.out.println("-------vertexid14----"+jsonObject14.getString("vertexid"));
        JSONObject jsonObject15 = vertices.getJSONObject(4);
        System.out.println("-------id15----"+jsonObject15.getString("id"));
        System.out.println("-------vertextype15----"+jsonObject15.getString("vertextype"));
        System.out.println("-------vertexid15----"+jsonObject15.getString("vertexid"));
        JSONObject jsonObject16 = vertices.getJSONObject(5);
        System.out.println("-------id16----"+jsonObject16.getString("id"));
        System.out.println("-------vertextype16----"+jsonObject16.getString("vertextype"));
        System.out.println("-------vertexid16----"+jsonObject16.getString("vertexid"));
        JSONObject jsonObject17 = vertices.getJSONObject(6);
        System.out.println("-------id17----"+jsonObject17.getString("id"));
        System.out.println("-------vertextype17----"+jsonObject17.getString("vertextype"));
        System.out.println("-------vertexid17----"+jsonObject17.getString("vertexid"));


    }
}

两段json解析完毕。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值