老色批在线播放视频网站免费-老色批影院-老色鬼福利 A级黄色片视在线播放_日韩欧美永久中文字幕视频_2

Java中JSON文檔解析

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

1.JSON是什么?

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

2.JSON對(duì)象格式

使用JSON表示一個(gè)對(duì)象的格式:

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

注意事項(xiàng)

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

示例

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

3.JSON數(shù)組表示

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

格式:

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

示例:

數(shù)組包含對(duì)象

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

對(duì)象包含數(shù)組:

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

對(duì)象與對(duì)象的嵌套:

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

4.JSON的解析

1. 使用Gson解析JSON文件

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

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

    代碼示例:

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

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

    代碼示例:

    1. 將JSON字符串轉(zhuǎn)換為Java對(duì)象
     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

    我們?cè)趯慗SON字符串的時(shí)候,需要注意使用轉(zhuǎn)義字符轉(zhuǎn)換雙引號(hào),另外,如果鍵值對(duì)的值是JSON數(shù)組,那么對(duì)應(yīng)數(shù)組在轉(zhuǎn)換之后的類型是ArrayList

2. 使用fastJson解析JSON文件

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

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

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

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

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

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

    轉(zhuǎn)換為L(zhǎng)ist集合

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

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


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

    文章來源:csdn

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

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



日歷

鏈接

個(gè)人資料

存檔