使用google gson
? ?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());