根據Gson庫使用的要求,將JSONObject格式的String 解析成實體
寫在前頭:本插件只適用 android studio和 Intellij IDEA 工具,eclipse 的少年無視我吧!!!
這是一個根據JSONObject格式的字符串,自動生成實體類參數.
版本1.1.3
1.1.3 版本更新內容: 1. 內部類使用 static 修飾;
- 生成屬性的時候會過濾父類的屬性;
- 支持修改實體類的后綴名,保持跟項目命名規則的統一;
- 支持自動生成轉換方法;
- 支持轉換方法的修改;
- 支持是否復用內部實體類,默認不啟用;
- 支持轉換異常的異常信息查看;
版本1.1.2
1.1.2 版本更新內容
- 修復了開啟對話框會閃一下的 bug;
- 增加了設置界面;
- 增加了使用Public 修飾成員變量,替代 private 和 set/get 方法.默認為 private ,可以手動切換過來;
- 支持全部變量用注解(SerializedName)的形式.可以用在混淆的時候.
版本1.1.1
1.1.1版本更新內容
- 修復了因為過濾//注釋代碼導致的出現的 Json 格式驗證異常;
- 支持解析 java 的關鍵字作為 key (支持字段: default,abstract,null,final,void,implements, this,instanceof,native,new,goto,const,volatile,return,finally)其余暫不支持;
版本1.1.0
1.1.0 版本更新內容:
- 支持數組中嵌套數組的解析;
- 支持過濾Json格式中的注釋代碼.
#Usage# 安裝方法1:
1.Android studio File->Settings..->Plugins-->Browse repositores..搜索GsonFormat 2.安裝插件,重啟android studio
安裝方法2:
1.下載GsonFormat.jar ; 2.Android studio File->Settings..->Plugins --> install plugin from disk..導入下載的GsonFormat.jar 3重啟android studio
使用方式
在實體類中使用Generate的快捷鍵.
快捷鍵:圖中選中的部分 我這邊的快捷鍵是 command+n;
簡單的實體類:
{ "name": "王五", "gender": "man", "age": 15, "height": "140cm", }
圖中的實體類
** * Created by 輕微 on 15/1/9. */ public class Bean extends JSONModel { /** * height : 140cm * age : 15 * name : 王五 * gender : man */ private String height; private int age; private String name; private String gender; public void setHeight(String height) { this.height = height; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public void setGender(String gender) { this.gender = gender; } public String getHeight() { return height; } public int getAge() { return age; } public String getName() { return name; } public String getGender() { return gender; } }
復雜的實體類:
實體類不僅包含另外一個實體,還包含另外實體的數組. 圖中復雜的json 格式
{ "name": "王五", "gender": "man", "age": 15, "height": "140cm", "addr": { "province": "fujian", "city": "quanzhou", "code": "300000" }, "hobby": [ { "name": "billiards", "code": "1" }, { "name": "computerGame", "code": "2" } ] }
圖中的實體類
/** * Created by 輕微 on 15/1/9. */ public class Bean extends JSONModel { /** * height : 140cm * age : 15 * name : 王五 * hobby : [{"name":"billiards","code":"1"},{"name":"computerGame","code":"2"}] * gender : man * addr : {"province":"fujian","code":"300000","city":"quanzhou"} */ private String height; private int age; private String name; private List<HobbyEntity> hobby; private String gender; private AddrEntity addr; public void setHeight(String height) { this.height = height; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public void setHobby(List<HobbyEntity> hobby) { this.hobby = hobby; } public void setGender(String gender) { this.gender = gender; } public void setAddr(AddrEntity addr) { this.addr = addr; } public String getHeight() { return height; } public int getAge() { return age; } public String getName() { return name; } public List<HobbyEntity> getHobby() { return hobby; } public String getGender() { return gender; } public AddrEntity getAddr() { return addr; } public class HobbyEntity { /** * name : billiards * code : 1 */ private String name; private String code; public void setName(String name) { this.name = name; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public String getCode() { return code; } } public class AddrEntity { /** * province : fujian * code : 300000 * city : quanzhou */ private String province; private String code; private String city; public void setProvince(String province) { this.province = province; } public void setCode(String code) { this.code = code; } public void setCity(String city) { this.city = city; } public String getProvince() { return province; } public String getCode() { return code; } public String getCity() { return city; } } }
1.1.1的過濾注釋功能講解: 支持 java 兩種注釋過濾:
/**段注釋: */ //行注釋:
例子:
{ /** * 名字 */ "name": "王五", "gender": "man",//性別 "age": 15, "height": "140cm", }
這樣它也是可以解析的.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!