天天看點

JAVA JSON 文法 和 JSON 解析

一、JSON 文法

作用 : json 檔案是類似xml檔案,用來存儲和傳輸資料資訊的媒介

注意 : json 同 xml 一樣,不僅可以通過響應檔案作為資料的載體,也可以通過滿足文法的字元串作為對應資料的載體,稱之為json 字元串

json 中 采用資料存儲, 采用{} 與 [] 文法

{} = > java 中的雙列集合 ( 字典 )

[] = > java 中的單列集合 ( 數組 )

  1. json 文法最頂層 為單一{} 或 單一[]
  2. json 文法中結構為 {} [] 互相嵌套( {} 可以嵌套 {} [] , [] 也可以嵌套{} [] )
  3. json 文法中以逗号(,)作為字段分割的辨別(注意 : 最後一個字段不能添加逗号)
  4. 字典中文法為{“key” : value} 格式 (注意: key 為 字元串格式, value 擁有類型)
  5. 數組中文法為[value1,value2,value3] 格式:(注意: value 擁有類型)
  6. {} 和 [] 中的每一個value,均可以為{} | [] ,且 多個value 類型不一定相同

多條語句文法:

{

“key1” : value1,

“key2” : value2,

“key3” : value3

}

public class Fjson02{
    public static void main(String[] args){
        String jStr = "{\"color\" : \"紅色\" ,\"weight\": \"11.4\"}";
        // JSON 字元串以 {} 包裹, 解析為 JSONObject 對象
        // JSON 字元串以 [] 包裹, 解析為 JSONArray  對象
        Object obj = JSON.parse(jStr);
        JSONObject jObj = (JSONObject) obj;
        System.out.println(obj);
        String color = jObj.getString("color");
        double weight = jObj.getDouble("weight");
        System.out.printf("%.1f" , weight);
    }
}
           
public class FJson03{
    public static void main(String[] args){
        String jStr = "{\"data\" : [1,2,3,4,5],\"name\" : \"張三\"}";
        //  擷取json字元串的 JSONObject 對象
        JSONObject jObj = (JSONObject) JSON.parse(jStr);
        //  擷取對應data 的 數組對象
        JSONArray jArr = jObj.getJSONArray("data");
        //  列印
        System.out.println(jArr);
        //  将數組 jarr周遊出來
        for(int i = ; i < jArr.size(); i++){
            //  擷取值  getIntValue()
            int num = jArr.getIntValue(i);
            System.out.println(num);
        }
    }
}