date: 2017-05-23 09:18:58
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对象在花括号中书写,对象可以包含多个名称/值对。
{"firstName":"Jphn","lasrName":"Doe"}
JSON数组
JSON数组在方括号中书写,数组可包含多个对象:
{
"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
//待读取的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//布尔类型
}
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数据
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());
}