Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

根据Gson库使用的要求,将JSONObject格式的String 解析成实体

License

Notifications You must be signed in to change notification settings

coolboydan/GsonFormat

Repository files navigation

写在前头:本插件只适用 android studio和 Intellij IDEA 工具,eclipse 的少年无视我吧!!!

这是一个根据JSONObject格式的字符串,自动生成实体类参数.

github

jetbrains

Android Arsenal

版本1.1.3

1.1.3 版本更新内容:

  1. 内部类使用 static 修饰;
  • 生成属性的时候会过滤父类的属性;
  • 支持修改实体类的后缀名,保持跟项目命名规则的统一;
  • 支持自动生成转换方法;
  • 支持转换方法的修改;
  • 支持是否复用内部实体类,默认不启用;
  • 支持转换异常的异常信息查看;

版本1.1.2

1.1.2 版本更新内容

  1. 修复了开启对话框会闪一下的 bug;
  • 增加了设置界面;
  • 增加了使用Public 修饰成员变量,替代 private 和 set/get 方法.默认为 private ,可以手动切换过来;
  • 支持全部变量用注解(SerializedName)的形式.可以用在混淆的时候.

版本1.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 版本更新内容:

  1. 支持数组中嵌套数组的解析;
  2. 支持过滤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的快捷键.

快捷键:图中选中的部分 72350A47-A21A-4505-817E-2CA8092F7B7D.png 我这边的快捷键是 command+n;

####简单的实体类:#### 简单的.gif 图中简单的 json 格式

{
 "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;
 }
}

#####复杂的实体类: 实体类不仅包含另外一个实体,还包含另外实体的数组. 复杂.gif 图中复杂的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",
}

这样它也是可以解析的.

About

根据Gson库使用的要求,将JSONObject格式的String 解析成实体

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /