1.JSON是什么?
    - 
        JSON的全稱為JavaScript Object Notation ,也就是JavaScript對(duì)象標(biāo)記法。
    
 
    - 
        JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,用于兩個(gè)程序之間的數(shù)據(jù)交換,類似于XML文檔。
    
 
    2.JSON對(duì)象格式
    使用JSON表示一個(gè)對(duì)象的格式:
{
    "屬性名1":"屬性值1",
    "屬性名2":"屬性值2",
    ......
    "屬性名":"屬性值n"
}  
    注意事項(xiàng) 
    - 
        一個(gè)對(duì)象整體由一個(gè)大括號(hào)表示
    
 
    - 
        對(duì)象的屬性,是由一個(gè)個(gè)鍵值對(duì)組成
    
 
    - 
        鍵值對(duì)的鍵與值之間應(yīng)該使用冒號(hào)隔開(kāi),而不同鍵值對(duì)之間需要使用逗號(hào)隔開(kāi)
    
 
    - 
        鍵與值最好都使用雙引號(hào),值可以是JavaScript中的任何一種數(shù)據(jù)類型
    
 
    示例
{
    "name":"金蘋果",
    "info":"講述了種植蘋果的辛酸歷程"
}  
    3.JSON數(shù)組表示
    JSON中的數(shù)組使用 [ ] 表示,并且數(shù)組可以跟對(duì)象互相嵌套
    格式:
[元素1,元素2...]  
    示例:
    數(shù)組包含對(duì)象
 ["張三","李四",{
        "name":"王五",
        "info":"一個(gè)在技術(shù)上使勁鉆研的人"
    }]  
    對(duì)象包含數(shù)組:
{
    "name":"李小超",
    "friend":["張三","李四",
              {
                "name":"王五",
                "info":"一個(gè)在技術(shù)上使勁鉆研的人"
            }
             ]
    "info":"一個(gè)非常帥氣的人"
}  
    對(duì)象與對(duì)象的嵌套:
{
    "name":"李小超",
    "project":{
        "school":"HPU",
        "name":"computer"
    }
}  
    4.JSON的解析
    1. 使用Gson解析JSON文件
    - 
        
            將Java對(duì)象轉(zhuǎn)換為JSON字符串
        
String json = new Gson().toJSON(要轉(zhuǎn)換的對(duì)象);  
        
        
            代碼示例:
        
Book b = new Book("金蘋果","講述了種植蘋果的辛酸路程"); String str = new Gson().toJson(b);  
        
     
    - 
        
            將JSON字符串轉(zhuǎn)換為Java對(duì)象
        
對(duì)象 = new Gson().fromJson(JSON字符串,對(duì)象類型.class);  
        
        
            代碼示例:
        
        
            - 
                將JSON字符串轉(zhuǎn)換為Java對(duì)象
            
 
        
 Book b2 = new Gson().fromJson(str, Book.class); System.out.println(b2.getName());  
        
        
            - 
                將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());   
        
        
            我們?cè)趯慗SON字符串的時(shí)候,需要注意使用轉(zhuǎn)義字符轉(zhuǎn)換雙引號(hào),另外,如果鍵值對(duì)的值是JSON數(shù)組,那么對(duì)應(yīng)數(shù)組在轉(zhuǎn)換之后的類型是ArrayList
        
     
    2. 使用fastJson解析JSON文件
    使用fastJSON解析與Gson十分相似,不過(guò)前者使用的是靜態(tài)方法。
    - 
        
            Java對(duì)象轉(zhuǎn)換為JSON字符串
        
String json=JSON.toJSONString(要轉(zhuǎn)換的對(duì)象);  
        
     
    - 
        
            JSON字符串轉(zhuǎn)換為Java對(duì)象
        
類型 對(duì)象名=JSON.parseObject(JSON字符串, 類型.class);
或者
List<類型> list=JSON.parseArray(JSON字符串,類型.class);  
        
        
            示例:
轉(zhuǎn)換為Java對(duì)象
        
 Book b2 = JSON.parseObject(json1,Book.class);  
        
        
            轉(zhuǎn)換為L(zhǎng)ist集合
        
List list = JSON.parseArray(json1,String.class);  
        
        
            
                在這里進(jìn)行說(shuō)明一下,我們觀察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)系。 
            
文章來(lái)源:csdn 
            
                分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責(zé)聲明:藍(lán)藍(lán)設(shè)計(jì)尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問(wèn)題,請(qǐng)及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。
 
            
            
                藍(lán)藍(lán)設(shè)計(jì)( www.ouqj.cn )是一家專注而深入的界面設(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ù)