1. 程式人生 > >Java解析(讀取)Json資料

Java解析(讀取)Json資料

以前看過書上說,XML是web service間傳輸資訊的標準格式吧,就看了看XML。最近在做個網站,又說是有了JSON,第一回聽說就看了看,總結總結一下。

1.JSON介紹

  JSON比XML簡單,主要體現在傳輸相同資訊的情況下,檔案的大小不同

  JSON只用於傳輸資訊,XML還可以用於配置檔案的使用。

  JSON中的符號主要有: " , [ {:

2.JSON中的陣列和物件

  2.1陣列(JSONArray

  陣列用一對[],表示存放的是一般的陣列資料。

  如:["11","22","33"],表示這是一個JSONArray陣列,裡面有3個數據:”11“,”22“,”33“。當然可以是複雜的資料,就是所謂的巢狀定義

吧。

  2.物件(JSONObject

  物件用一對{},來表示其中JSON通用的”鍵-值“對。

  如:{"sex1":"female","name0":"zhangsan"},表示的是一個JSON物件,裡面有兩組資料(鍵值對),sex1=female,name0=zhangsan。當然這裡鍵對應的資料值,可以是複雜的JSON物件或者陣列。

3.程式碼示例

3.1基本的JSONArray與JSONObject操作

複製程式碼
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class ObjectAndArray1 { public static void main(String args[]) { JSONObject jsonObj = new JSONObject(); jsonObj.put("name0", "zhangsan"); jsonObj.put("sex1", "female"); System.out.println(jsonObj); //輸出為:{"sex1":"female","name0":"zhangsan"} JSONArray jsonArray
= new JSONArray(); jsonArray.add("11"); jsonArray.add("22"); jsonArray.add("33"); System.out.println(jsonArray); //輸出為:["11","22","33"] } }
複製程式碼

3.2由java自帶的資料結構轉換為JSON文字

複製程式碼
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class ObjectAndArray2{
    public static void main(String args[])
    {
        //可以由陣列,列表等生成JSONArray
        String list[]={"11","22"};
        JSONArray jsonarray = JSONArray.fromObject(list); 
        jsonarray.add("33");
        System.out.println(jsonarray);    //輸出為:["11","22","33"]
        
        //可以由Map生成JSONObject
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("NO1", "第一個");
        map.put("NO2", "第二個");
        map.put("NO3", jsonarray);
        JSONObject jsonObj  = JSONObject.fromObject(map);
        System.out.println(jsonObj);    //輸出為:{"NO3":["11","22","33"],"NO2":"第二個","NO1":"第一個"}
    }
}
複製程式碼

3.3讀取JSON文字

JSONArray必須用下標讀取內部資料。
JSONObject必須用”鍵“讀取對應的”值“。
複製程式碼
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class ObjectAndArray {
    public static void main(String args[])
    {
        JSONArray jsonarray;
        JSONObject jsonObj;
        //讀取JSONArray,用下標索引獲取
        String array="[\"11\",\"22\",\"33\"]";
        jsonarray = JSONArray.fromObject(array); 
        System.out.println(jsonarray.getString(1));    //輸出為:22
        
        //讀取JSONObject
        String object="{\"NO1\":[\"44\",\"55\",\"66\"],\"NO2\":{\"NO1\":\"第一個\"}}";
        jsonObj  = JSONObject.fromObject(object);
        System.out.println(jsonObj.get("NO1"));    //輸出為:["44","55","66"]
        
        jsonarray = (JSONArray)(jsonObj.get("NO1")); 
        System.out.println(jsonarray.getString(1));    //輸出為:55
        
        //用"鍵"獲取值
        jsonObj=(JSONObject)jsonObj.get("NO2");
        System.out.println(jsonObj);    //輸出為:{"NO1":"第一個"}
        
    }
}
複製程式碼

4.總結

  JSON就是一種資料的組織形式,可以說是XML的簡化版本,只用於資料傳輸。