Java解析(讀取)Json資料
阿新 • • 發佈:2018-12-22
以前看過書上說,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的簡化版本,只用於資料傳輸。