Json的生成和讀取2(JSONArray+JSONObject)
JSONArray類
構造方法
JSONArray()
JSONArray(CollectioncopyFrom)
JSONArray(JSONTokener readFrom)
JSONArray(String json)
JSONArray(Object array)
常用方法:
Get
put
opt(不丟擲異常的get)
remove
不常用方法:
Length獲取長度
Join設定間隔字元並轉為String
toString轉為String並確定是否格式化(可以設定空格數
(關鍵是可以用於格式化)
isnull是否為空
equal判斷是否相等
hashcode轉雜湊值
toJsonObject(JsonArray)與另一個JSONArray一一對應生成一個JSONObject
JSONObject類
構造方法:
JSONObject()
JSONObject(Map copyFrom)
JSONObject(JSONTokener readFrom)
JSONObject(String json)
JSONObject(JSONObject copyFrom, String[] names)
常用方法:
Get
put
opt(不丟擲異常的get)
accumulate追加
remove移除
不常用方法:
toString轉為String並確定是否格式化(可以設定空格數)
(關鍵是可以用於格式化)
Length獲取長度
isnull是否為空
has(String name)判斷是否有值
基本不用:
keys返回迭代器(忘了什麼是迭代器了)
names將names儲存為JsonArray,
numbertostring(不知道)
quote(不知道)(好像已經棄用)
toJsonArray(不知道)
wrap(不知道)
示例程式碼
JSONObject root = new JSONObject();//例項一個JSONObject物件
root.put("cat", "it");//對其新增一個數據
JSONArray languages = new JSONArray();//例項一個JSON陣列
JSONObject lan1 = new JSONObject();//例項一個lan1的JSON物件
lan1.put("id", 1);//對lan1物件新增資料
lan1.put("ide", "Eclipse");//對lan1物件新增資料
lan1.put("name", "Java");//對lan1物件新增資料
JSONObject lan2 = new JSONObject();//例項一個lan2的JSON物件
lan2.put("id", 2);//對lan2物件新增資料
lan2.put("ide", "XCode");//對lan2物件新增資料
lan2.put("name", "Swift");//對lan2物件新增資料
JSONObject lan3 = new JSONObject();//例項一個lan3的JSON物件
lan3.put("id", 3);//對lan3物件新增資料
lan3.put("ide", "Visual Studio");//對lan3物件新增資料
lan3.put("name", "C#");//對lan3物件新增資料
languages.put(0, lan1);//將lan1物件新增到JSON陣列中去,角標為0
languages.put(1, lan2);//將lan2物件新增到JSON陣列中去,角標為1
languages.put(2, lan3);//將lan3物件新增到JSON陣列中去,角標為2
root.put("languages", languages);//然後將JSON陣列新增到名為root的JSON物件中去
System.out.println(root);
System.out.println(languages);
System.out.println(lan1);
System.out.println(lan2);
System.out.println(lan3);
生成的Json資料
{
"cat": "it",
"languages": [{
"id": 1,
"ide": "Eclipse",
"name": "Java"
}, {
"id": 2,
"ide": "XCode",
"name": "Swift"
}, {
"id": 3,
"ide": "Visual Studio",
"name": "C#"
}]
}
JSONString類
用於拼寫Json
JSONStringer()
array()
endArray()
endObject()
key(String name)
object()
toString()
value
JSONTokener類
這個只是前兩個的助手類,不需要去了解它
(只用到構造方法和nextValue()方法)
JSONObject object =(JSONObject)new JSONTokener(json).nextValue();
___________________________________分割線______________________________________
重用度高的和複雜的推薦用Gson
使用次數少和簡單的JsonArray+JsonObject
Json的生成和解析(Gson方法)
https://blog.csdn.net/yh18668197127/article/details/85042064