Java中JSON文檔解析

2021-8-17    前端達(dá)人

1.JSON是什么?

  1. JSON的全稱為JavaScript Object Notation ,也就是JavaScript對象標(biāo)記法。
  2. JSON是一種輕量級的數(shù)據(jù)交換格式,用于兩個程序之間的數(shù)據(jù)交換,類似于XML文檔。

2.JSON對象格式

使用JSON表示一個對象的格式:

{
    "屬性名1":"屬性值1",
    "屬性名2":"屬性值2",
    ......
    "屬性名":"屬性值n"
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意事項

  • 一個對象整體由一個大括號表示
  • 對象的屬性,是由一個個鍵值對組成
  • 鍵值對的鍵與值之間應(yīng)該使用冒號隔開,而不同鍵值對之間需要使用逗號隔開
  • 鍵與值最好都使用雙引號,值可以是JavaScript中的任何一種數(shù)據(jù)類型

示例

{
    "name":"金蘋果",
    "info":"講述了種植蘋果的辛酸歷程"
}  
  • 1
  • 2
  • 3
  • 4

3.JSON數(shù)組表示

JSON中的數(shù)組使用 [ ] 表示,并且數(shù)組可以跟對象互相嵌套

格式:

[元素1,元素2...]  
  • 1

示例:

數(shù)組包含對象

 ["張三","李四",{
        "name":"王五",
        "info":"一個在技術(shù)上使勁鉆研的人"
    }]  
  • 1
  • 2
  • 3
  • 4

對象包含數(shù)組:

{
    "name":"李小超",
    "friend":["張三","李四",
              {
                "name":"王五",
                "info":"一個在技術(shù)上使勁鉆研的人"
            }
             ]
    "info":"一個非常帥氣的人"
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

對象與對象的嵌套:

{
    "name":"李小超",
    "project":{
        "school":"HPU",
        "name":"computer"
    }
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4.JSON的解析

1. 使用Gson解析JSON文件

  1. 將Java對象轉(zhuǎn)換為JSON字符串

    String json = new Gson().toJSON(要轉(zhuǎn)換的對象);  
            
    • 1

    代碼示例:

    Book b = new Book("金蘋果","講述了種植蘋果的辛酸路程"); String str = new Gson().toJson(b);  
            
    • 1
    • 2
  2. 將JSON字符串轉(zhuǎn)換為Java對象

    對象 = new Gson().fromJson(JSON字符串,對象類型.class);  
            
    • 1

    代碼示例:

    1. 將JSON字符串轉(zhuǎn)換為Java對象
     Book b2 = new Gson().fromJson(str, Book.class); System.out.println(b2.getName());  
            
    • 1
    • 2
    1. 將JSON字符串轉(zhuǎn)換為Java集合
    String js = "{\"name\":\"金蘋果\",\"info\":\"講述了種植蘋果的辛酸歷程\",\"page\":[\"鋤禾日當(dāng)午\",\"汗滴禾下土\"]}"; HashMap data = new Gson().fromJson(js,HashMap.class); System.out.println(data.get("page").getClass()); /*
        輸出結(jié)果:class java.util.ArrayList
    */  
            
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    我們在寫JSON字符串的時候,需要注意使用轉(zhuǎn)義字符轉(zhuǎn)換雙引號,另外,如果鍵值對的值是JSON數(shù)組,那么對應(yīng)數(shù)組在轉(zhuǎn)換之后的類型是ArrayList

2. 使用fastJson解析JSON文件

使用fastJSON解析與Gson十分相似,不過前者使用的是靜態(tài)方法。

  1. Java對象轉(zhuǎn)換為JSON字符串

    String json=JSON.toJSONString(要轉(zhuǎn)換的對象);  
            
    • 1
  2. JSON字符串轉(zhuǎn)換為Java對象

    類型 對象名=JSON.parseObject(JSON字符串, 類型.class);
    或者
    List<類型> list=JSON.parseArray(JSON字符串,類型.class);  
            
    • 1
    • 2
    • 3

    示例:
    轉(zhuǎn)換為Java對象

     Book b2 = JSON.parseObject(json1,Book.class);  
            
    • 1

    轉(zhuǎn)換為List集合

    List list = JSON.parseArray(json1,String.class);  
            
    • 1

    在這里進(jìn)行說明一下,我們觀察JSON.parseArray()的源碼可以看到,這個方法的返回值就是一個List類型的數(shù)據(jù),我們向方法中傳遞的第二個參數(shù)是List元素所屬的類型。
    、


    藍(lán)藍(lán)設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進(jìn)入一起成長學(xué)習(xí),請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。

    文章來源:csdn

    分享此文一切功德,皆悉回向給文章原作者及眾讀者.
    免責(zé)聲明:藍(lán)藍(lán)設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

    藍(lán)藍(lán)設(shè)計bouu.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)



分享本文至:

日歷

鏈接

個人資料

存檔