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解析完毕。