google gson 是一个可以把java类映射到json的开源类库。比起org.json实现的json类库更加方便功能也丰富多了。记录一下。
google gson的使用方法很简单使用Gson类的方法toJson将java对象序列化为json字符串,fromJson反序列化json字符串为java对象.
常用到的功能:
a,只序列化需要的数据
直接实例化Gson类序列化java中的类为json字符串,类里面的所有变量都会json序列化。
避免这种情况的做法是使用@Expose标识要json序列号的变量,通过GsonBuilder调用excludeFieldsWithoutExposeAnnotation方法指明只序列化有Expose标识的变量.
b,序列化变量别名
在变量前标识 @SerializedName("别名")即可
下面是一个贴代码
public class Person {
@Expose
@SerializedName("Name")
public String name;
@Expose
public int age;
@Expose
public char sex;
private int other=11;
public Person(String name,int age,char sex){
this.name =name;
this.age= age;
this.sex=sex;
}
@Override
public String toString() {
return "name="+name
+", age="+age
+", sex="+sex
+", other="+other;
}
}
调用
GsonBuilder gb=new GsonBuilder() ;
gb.excludeFieldsWithoutExposeAnnotation();
Gson gson =gb.create();
Person person = new Person("name", 18,'B');
String str= gson.toJson(person);
Log.d("GsonActivity", "toJson--"+str);
Person person2= gson.fromJson(str, Person.class);
Log.d("GsonActivity", "fromJson--"+person2.toString());