java中的JSON操作

JSON简介

JSON:JavaScript 对象表示法(JavaScript Object Notation)
JSON是存储和交换文本信息的语法。

JSON的特点:
1、JSON是轻量级的文本数据交换格式
2、JSON独立于语言和平台
3、JSON具有自我描述性,更易理解

JSON与XML

类似XML,比XML更小、更快,更易解析。
1、没有结束标签
2、更短
3、读写的速度更快
4、使用数组
5、不使用保留字

JSON的语法

JSON语法是JavaScript对象表示法的子集。
1、数据在名称/值对中(键值对)
2、数据由逗号分隔
3、花括号保存对象
4、方括号保存数组
JSON值可以是:
1、数字(整数或浮点数)
2、字符串(在双引号中)
3、逻辑值(true或false)
4、数组(在方括号中)
5、对象(在花括号中)
6、null

JSON对象

JSON对象在花括号中书写,对象可以包含多个名称/值对。

1
{"firstName":"Jphn","lasrName":"Doe"}

JSON数组

JSON数组在方括号中书写,数组可包含多个对象:

1
2
3
4
5
6
7
{
"employees":[
{"firstName":"John","lastName":"Doe"},
{"firstName":"Anna","lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"},
]
}

使用Java读取JSON数据

下载google-gson-2.2.4包
使用gson-2.2.4.jar

1
2
3
4
5
6
7
8
9
//待读取的JSON文件
{"cat":"it",//string类型
"languages":[
{"id":1,"ide":"Eclipse","name":"Java"},
{"id":2,"ide":"XCode","name":"Swift"},
{"id":3,"ide":"Visual Studio","name":"C#"}
],//整型
"pop":ture//布尔类型
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import com.google.gson.JsonObject;
public class ReadJSON{
public class void main(String[] args){
try{
//建立一个JSON的解析器
//可用解析器解析字符串或者输入流
JsonParser parser = new JosnParser();
//建立一个JSON对象
JsonObject object = parser.parse(new FileReader("test.json"))
//读取对象值
//由键索引键值,并依据键值数据类型,转换其格式
System.out.println("cat=" + object.get("cat").getAsString());
System.out.println("pop=" + object.get("pop").getAsBoolean());
//读取数组
JsonArray array = object.get("languages").getAsJsonArray;
for (int i =0;i < array.size();i++){
System.out.println("-----------");
JsonObject subObject = array.get(i).getAsJsonObject();
System.out.println("id=" + subobject.get("id").getAsInt());
System.out.println("name=" + subobject.get("name").getAsString());
System.out.println("ide=" + subobject.get("ide").getAsString());
}
}catch (JsonIOException e){
e.printStackTrace();
}catch (JsonSyntaxException e){
e.printStackTrace();
}catch (FileNotFoundException e){
e.printStackTrace();
}
}
}

使用Java创建JSON数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import com.google.gson.JsonObject;
public class CreatJSON{
public class void main(String[] args){
//创立JSON对象
JsonObject object = new JsonObject();
//添加键值对
object.addProperty("cat","it");
//添加数组
JsonArray array = new JsonArray();
JsonObject lan1 = new JsonObject();
lan1.addProperty("id",1);
lan1.addProperty("name","Java");
lan1.addProperty("ide","Eclipse");
array.add(lan1);
JsonObject lan2 = new JsonObject();
lan2.addProperty("id",2);
lan2.addProperty("name","Swift");
lan2.addProperty("ide","XCode");
array.add(lan2);
JsonObject lan3 = new JsonObject();
lan3.addProperty("id",3);
lan3.addProperty("name","C#");
lan3.addProperty("ide","Visual Studio");
array.add(lan3);
//将这个数组添加进去
object.add("languages",array);
//添加布尔
object.addProperty("pop",ture);
//输出
System.out.println(object.toString());
}
谢谢你请我吃糖果!