GSONFormat的簡(jiǎn)單使用

標(biāo)簽(空格分隔): Android


今天主要解決歷史遺留問(wèn)題,而且工作效率比較低orz

JSON 與 Gson

眾所周知,JSON(JavaScript Object Notation, JS 對(duì)象簡(jiǎn)譜) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript (歐洲計(jì)算機(jī)協(xié)會(huì)制定的js規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。常見格式為鍵值對(duì)形式,如下

{"userName": "oven", "userId": "1234567"}

而GSON是google推出的一個(gè)實(shí)現(xiàn) JSON 與 Java 對(duì)象間轉(zhuǎn)化的庫(kù),它可以輕松實(shí)現(xiàn) JSON 與 Java 對(duì)象間的轉(zhuǎn)換

GsonFormat 插件的用法

在Android Studio中,可以利用 GsonFormat插件,快速創(chuàng)建符合 Gson要求的 javaBean 。GSONFormat地址:https://github.com/zzz40500/GsonFormat

使用過(guò)程

  1. 將需要解析的 json 數(shù)據(jù)直接粘貼到框內(nèi),


    image.png

小tip:應(yīng)該直接把從接口拿到的數(shù)據(jù)粘貼,避免 api 文檔格式問(wèn)題帶來(lái)的各種不必要的 bug

  1. 勾選需要的屬性


    微信圖片_20190208215423.png
  2. 自動(dòng)生成代碼

 
  public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
     public static JobBean objectFromData(String str) {
return new com.google.gson.Gson().fromJson(str, JobBean.class);
    }
    

4.在所需界面調(diào)用即可

JobBean job = JobBean.objectFromData(jsonstr);

其他

  • 使用 Gson 將數(shù)據(jù)解析成一個(gè)對(duì)象
Gson gson = new Gson();
Person person = gson.fromJson(jsonData,Person.class);
  • 使用 Gson 將數(shù)據(jù)解析成一個(gè) List
List<Person> people = gson.fromJson(jsonData,new TypeToken<List<Person>>){}.getType());

借助TypeToken將期望解析成的數(shù)據(jù)類型傳入fromJson()方法中

實(shí)際上,在使用Gsonformat時(shí)能自動(dòng)生成對(duì)應(yīng)的 getobjectfromdata 或 getArrayfromdata 方法,按需選擇即可

  • SerializedName 的用法
    一種協(xié)調(diào)后臺(tái)傳回?cái)?shù)據(jù)的字段命名格式與Java命名習(xí)慣不同的注釋方式
@SerializedName("user_name")
private String userName;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容