1.Google Gson在android studio的使用
gradle:compile 'com.google.code.gson:gson:2.2.4'
2.Gson 注解
@Expose
注解的作用是序列化和反序列化的时候暴露给Gson,没有这个注解,字段可以不被转换
@SerializedName
此注解作用在属性上,表明这个属性在序列化成Json的时候,需要将名字序列化成注解的value属性指定的值。
@Since和@Until具体查看Api文档
3.使用
1)实体类
public class User {
@Expose
@SerializedName("user_name")
private String userName;
@Expose
private int id;
private int age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2)json数据
{
"user_name"
:
"Andi"
,
"id"
:
20,"age":27
}
3)解析
Gson gson = new Gson();
User user = gson.fromJson(json字符串数据, User.class);
不转换没有 @Expose 注解的字段
GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
User user = gson.fromJson(json字符串数据,new TypeToken<User>() {}.getType());
这样user对象的age是0,没有从json中转换
【声明】
欢迎转载,但请保留文章原始出处