第十五章:JOSN
1、JSON介绍:
JavaScript对象表示法(JavaScript Object Notation)。独立于语言和平台,比 XML更小、更快,更易解析。如今 JSON 数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握。
2、JSON核心内容:
1. JSON 数据的特点与优势。
2.在 Java 中解析 JSON 格式数据。
3.在 Java 中构建 JSON 格式数据。
3、JSON语法规则:
JSON语法是 JavaScript对象表示语法的子集。
对象:对象包含再 { }之间。
属性:采用Key-Value对来表示。属性之间使用逗号分开。 string : value 。
数组:数组存放再[ ] 之间 [ elements ] 。
元素:元素之间用逗号分开。
值:值可以是字符串,数字,对象,数组,true,false,null。
4、JSON对象:
JSON 数据的书写格式是:名称/值对。
名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
{“firstName:Jhon”,”lastName:Done”}
5、例子:
JSON例子1:
{
"people":[
{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},
{"firstName":"Jason","lastName":"Hunter","email":"bbbb"},
{"firstName":"Elliotte","lastName":"Harold","email":"cccc"} ]
}
JSON例子2:
{
"cat":"it",
"languages":[
{"id":1,"ide":Eclipse,"name":java },
{"id":1,"ide":VS,"name":C# },
{"id":1,"ide":XCode,"name":PHP }
],
"pop" : true
}
6、使用Java读取 JSON数据步骤:
二、Google的Gson包的使用简介。
1、下载包、构建包Buil Path。
2、创建JsonParser解析对象,再创建JsonObject、
Gson 类:解析 json 的最基础的工具类。
JsonParser类:解析器来解析JSON到JsonElements的解析树。
JsonElement类:一个类代表的JSON元素。
JsonObject类:JSON对象类型。
JsonArray类:JsonObject数组。
TypeToken类:用于创建type,比如泛型List<?>。
7、使用 Java 读取 JSON 数据步骤:
package jsonString; import java.io.FileNotFoundException; import java.io.FileReader; import com.google.gson.JsonIOException; import com.google.gson.*; import com.google.gson.JsonSyntaxException; public class JsonTest { public static void main(String[] args) { try { //创建JsonParser对象 JsonParser parser= new JsonParser(); //创建JsonObject对象 JsonObject object = (JsonObject) parser.parse(new FileReader("Test.json")); //遍历数组输出 JsonArray array = object.getAsJsonArray("languages"); JsonObject li = object.getAsJsonObject(); System.out.println(li); } catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) { e.printStackTrace(); } } }
8、java创建JSON数据案例:
package great_json; import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class JsonTest { public static void main(String [] args){ //创建JsonObject JsonObject object = new JsonObject(); object.addProperty("cat", "it"); //添加数组 JsonArray array = new JsonArray(); JsonObject obn1 = new JsonObject(); obn1.addProperty("id",1); obn1.addProperty("name","Java"); obn1.addProperty("IDE","eclipse"); array.add(obn1); JsonObject obn2 = new JsonObject(); obn2.addProperty("id",2); obn2.addProperty("name","C#"); obn2.addProperty("IDE","VS"); array.add(obn2); JsonObject obn3 = new JsonObject(); obn3.addProperty("id",3); obn3.addProperty("name","PHP"); obn3.addProperty("IDE","XCode"); array.add(obn3); object.addProperty("pop", true); //把添加到数组 object.add("languages", array); //输出数据 System.out.println(object); } }