1.JSON是什么?
-
JSON的全稱為JavaScript Object Notation ,也就是JavaScript對象標記法。
-
JSON是一種輕量級的數據交換格式,用于兩個程序之間的數據交換,類似于XML文檔。
2.JSON對象格式
使用JSON表示一個對象的格式:
{
"屬性名1":"屬性值1",
"屬性名2":"屬性值2",
......
"屬性名":"屬性值n"
}
注意事項
-
一個對象整體由一個大括號表示
-
對象的屬性,是由一個個鍵值對組成
-
鍵值對的鍵與值之間應該使用冒號隔開,而不同鍵值對之間需要使用逗號隔開
-
鍵與值最好都使用雙引號,值可以是JavaScript中的任何一種數據類型
示例
{
"name":"金蘋果",
"info":"講述了種植蘋果的辛酸歷程"
}
3.JSON數組表示
JSON中的數組使用 [ ] 表示,并且數組可以跟對象互相嵌套
格式:
[元素1,元素2...]
示例:
數組包含對象
["張三","李四",{
"name":"王五",
"info":"一個在技術上使勁鉆研的人"
}]
對象包含數組:
{
"name":"李小超",
"friend":["張三","李四",
{
"name":"王五",
"info":"一個在技術上使勁鉆研的人"
}
]
"info":"一個非常帥氣的人"
}
對象與對象的嵌套:
{
"name":"李小超",
"project":{
"school":"HPU",
"name":"computer"
}
}
4.JSON的解析
1. 使用Gson解析JSON文件
-
將Java對象轉換為JSON字符串
String json = new Gson().toJSON(要轉換的對象);
代碼示例:
Book b = new Book("金蘋果","講述了種植蘋果的辛酸路程"); String str = new Gson().toJson(b);
-
將JSON字符串轉換為Java對象
對象 = new Gson().fromJson(JSON字符串,對象類型.class);
代碼示例:
-
將JSON字符串轉換為Java對象
Book b2 = new Gson().fromJson(str, Book.class); System.out.println(b2.getName());
-
將JSON字符串轉換為Java集合
String js = "{\"name\":\"金蘋果\",\"info\":\"講述了種植蘋果的辛酸歷程\",\"page\":[\"鋤禾日當午\",\"汗滴禾下土\"]}"; HashMap data = new Gson().fromJson(js,HashMap.class); System.out.println(data.get("page").getClass());
我們在寫JSON字符串的時候,需要注意使用轉義字符轉換雙引號,另外,如果鍵值對的值是JSON數組,那么對應數組在轉換之后的類型是ArrayList
2. 使用fastJson解析JSON文件
使用fastJSON解析與Gson十分相似,不過前者使用的是靜態方法。
-
Java對象轉換為JSON字符串
String json=JSON.toJSONString(要轉換的對象);
-
JSON字符串轉換為Java對象
類型 對象名=JSON.parseObject(JSON字符串, 類型.class);
或者
List<類型> list=JSON.parseArray(JSON字符串,類型.class);
示例:
轉換為Java對象
Book b2 = JSON.parseObject(json1,Book.class);
轉換為List集合
List list = JSON.parseArray(json1,String.class);
在這里進行說明一下,我們觀察JSON.parseArray()的源碼可以看到,這個方法的返回值就是一個List類型的數據,我們向方法中傳遞的第二個參數是List元素所屬的類型。
、
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。
文章來源:csdn
分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。
藍藍設計( m.91whvog3.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務