從服務器端接收數據的時候,那些數據必須以瀏覽器能夠理解的格式來發送。
服務器端的編程語言只能以如下 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