天天看點

JSON資料解析及gson.jar包

從伺服器端接收資料的時候,那些資料必須以浏覽器能夠了解的格式來發送。

伺服器端的程式設計語言隻能以如下 3 種格式傳回資料: HTML XML JSON

JSON一種簡單的資料格式,比xml更輕巧。

JSON是JavaScript原生格式,這意味着在JavaScript中處理JSON資料不需要任何特殊的API或工具包。

JSON的規則很簡單:對象是一個無序的“‘名稱:值’對”集合。一個對象以“{”(左括号)開始,“}”(右括号)結束。每個“名稱”後跟一個“:”(冒号);“‘名稱/值’對”之間使用“,”(逗号)分隔。 規則如下: 1)映射用冒号(“:”)表示。名稱:值 2)并列的資料之間用逗号(“,”)分隔。名稱1:值1,名稱2:值2 3) 映射的集合(對象)用大括号(“{}”)表示。{名稱1:值1,名稱2:值2} 4) 并列資料的集合(數組)用方括号(“[]”)表示。

[

   {名稱1:值,名稱2:值2},

  {名稱1:值,名稱2:值2}

]  

元素值可具有的類型:string, number, object, array, true, false, null

JSON 用冒号(而不是等号)來指派。每一條指派語句用逗号分開。整個對象用大括号封裝起來。

可用大括号分級嵌套資料。 對象描述中存儲的資料可以是字元串,數字或者布爾值。對象描述也可存儲函數,那就是對象的方法。

使用Java讀取Json資料: 

1 import java.io.FileReader;
 2 import com.google.gson.JsonArray;
 3 import com.google.gson.JsonObject;
 4 import com.google.gson.JsonParser;
 5 
 6 public class JsonDemo {
 7     public static void main(String []args) throws Exception{
 8         JsonParser parser = new JsonParser() ;
 9         JsonObject object = (JsonObject)parser.parse(new FileReader("src//JsonTest//test.json"));
10         // 解析string
11         System.out.println("name = "+object.get("name").getAsString());
12         // 解析數組
13         JsonArray array = object.get("like").getAsJsonArray();
14         for(int i=0;i<array.size();i++){
15             JsonObject arrayObject = array.get(i).getAsJsonObject() ;
16             System.out.println("id = "+arrayObject.get("id").getAsInt() + " say = "+arrayObject.get("say").getAsString());
17         }
18         // 解析bool類型
19         System.out.println("key = "+object.get("key").getAsBoolean());
20     }
21 }      

Json檔案内容:

1 {
2     "name":"奶BerBer",
3     "like":[
4         {"id":1,"say":"hello java"},
5         {"id":2,"say":"hello c++"},
6         {"id":3,"say":"hello python"}
7         ],
8     "key":true 
9 }      

輸出結果:

name = 奶BerBer

id = 1 say = hello java

id = 2 say = hello c++

id = 3 say = hello python

key = true

使用Java建立Json資料: 

1 import com.google.gson.JsonArray;
 2 import com.google.gson.JsonObject; 
 3 
 4 public class JsonDemo {
 5     public static void main(String []args) throws Exception{ 
 6         JsonObject object = new JsonObject();
 7         object.addProperty("name","奶BerBer") ;
 8         
 9         JsonArray array = new JsonArray() ;
10         
11         JsonObject lem1 = new JsonObject() ;
12         lem1.addProperty("id","1");
13         lem1.addProperty("say","hello java"); 
14         array.add(lem1) ;
15         
16         JsonObject lem2 = new JsonObject() ;
17         lem2.addProperty("id","2");
18         lem2.addProperty("say","hello c++"); 
19         array.add(lem2) ;
20         
21         JsonObject lem3 = new JsonObject() ;
22         lem3.addProperty("id","3");
23         lem3.addProperty("say","hello python"); 
24         array.add(lem3) ;
25 
26         object.add("like",array) ;
27         object.addProperty("key","true") ;
28         
29         System.out.println(object.toString());
30     }
31 }      

運作結果:

{"name":"奶BerBer","like":[{"id":"1","say":"hello java"},{"id":"2","say":"hello c++"},{"id":"3","say":"hello python"}],"key":"true"}

Json包下載下傳: 連結:

https://pan.baidu.com/s/1kULUbQ3

 密碼:s98k