免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Gson中fromJson方法的返回值

Gson是google的一個(gè)Json庫,使用非常簡單。在Java中,只要引入包,創(chuàng)建對象就可以用了。

fromJson是Gson提供的一個(gè)方法。用來將一個(gè)Json數(shù)據(jù)轉(zhuǎn)換為對象。調(diào)用方法是:new Gson().fromJson(Json_string,class)

需要注意的是,它會“盡量”轉(zhuǎn)換出對象,哪怕得到的對象從數(shù)據(jù)上看是不完整的。

這樣,可以通過一個(gè)Json數(shù)據(jù)轉(zhuǎn)換出多種類型的對象,完全看使用者的需求。當(dāng)用XSLT格式化XML文件時(shí)也是這種思路。

需要注意的是,在調(diào)用fromJson時(shí),參數(shù)Json_string的情況決定了返回值的情況:null、對象還是拋出異常

  • 長度為0或者是null,那么返回結(jié)果是null;
  • 非空,但不符合Json格式,比如“abc”,會拋出異常;
  • 非空,則會返回一個(gè)非null的對象,無法獲得值的成員變量使用缺省值,這就是上面的”盡量“的意思。當(dāng)然,這種情況下,也有可能得到一個(gè)所有成員變量均為缺省值的對象;

再說下這個(gè)”盡量“??雌饋硎怯懈弊饔玫摹1热缭紨?shù)據(jù)完全提供錯(cuò)了,通過fromJson也能得到一個(gè)對象實(shí)體。而這種實(shí)體可能是不可用的。所以,基本上需要自己增加對象可用性驗(yàn)證代碼,在通過fromJson獲得了非null對象后,進(jìn)行一次驗(yàn)證。

當(dāng)然好處也是大大的。比如可以將一次從服務(wù)器獲取的數(shù)據(jù)轉(zhuǎn)換成不同的對象,展示在不同的地方。所以,應(yīng)該是利大于弊。

舉例:

  1. import com.google.gson.Gson;  
  2.   
  3. public class TestJson  
  4. {  
  5.     private int age;  
  6.     private String name;  
  7.   
  8.     public String show()  
  9.     {  
  10.         return new String("name:" + name + "/age:" + age);  
  11.     }  
  12.   
  13.     public static void main(String[] args)  
  14.     {  
  15.         String[] source =new String[]{  
  16.                 "",  
  17.                 "abc",  
  18.                 "{}",  
  19.                 "{\"nick_name\":\"Jack\"}",  
  20.                 "{\"name\":\"Anna\",\"id\":5}",  
  21.                 "{\"name\":\"Pluto\",\"age\":15,\"id\":10}"  
  22.         };  
  23.           
  24.         Gson g=new Gson();  
  25.         TestJson x=null;  
  26.         StringBuffer info=null;  
  27.         for(int i=0;i<source.length;i++)  
  28.         {  
  29.             info=new StringBuffer();  
  30.             info.append(i).append(":").append(source[i]).append("\n\t");  
  31.             try  
  32.             {  
  33.                 x=g.fromJson(source[i], TestJson.class);  
  34.                 info.append((x == null) ? "NULL" : x.show());  
  35.             }catch(Exception e)  
  36.             {  
  37.                 info.append(e.getClass().getName());  
  38.             }  
  39.             System.out.println(info.toString());  
  40.         }  
  41.     }  
  42. }  


運(yùn)行的結(jié)果是:

  1. 0:  
  2.     NULL  
  3. 1:abc  
  4.     com.google.gson.JsonSyntaxException  
  5. 2:{}  
  6.     name:null/age:0  
  7. 3:{"nick_name":"Jack"}  
  8.     name:null/age:0  
  9. 4:{"name":"Anna","id":5}  
  10.     name:Anna/age:0  
  11. 5:{"name":"Pluto","age":15,"id":10}  
  12.     name:Pluto/age:15  


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
網(wǎng)易新聞
java – 如何將JSON對象解析為`Map>`
Gson User Guide
Gson詳細(xì)使用,此Gson非彼Json,你值得擁有~
Gson用戶指南
一個(gè)容錯(cuò)的 Gson 新世界
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服