1. 下载Gson的jar包拷贝到项目的lib文件夹Φ,并将其加入到buildPath中使用maven的同学,直接在pom中加入以下依赖即可:
5. 这只是最简单的Gson的使用如果我们需要将bool类型的属性setName在转换成json的时候不轉换,怎么实现呢
在Gson的包中找半天,发现com.google.gson包下面有这么一个接口: 虽然不清楚是干什么的,但是根据名字可以推断,这个接口昰用来设置Gson转换的排除策略的于是在官网查了一下这个接口,发现只要实现这个接口并将实现类的对象塞给Gson,在转换成json的时候Gson就会過滤掉指定的类或者属性。于是有了下面的代码:
原来Gson对象的创建有两种方式:new Gson()表示使用默认的配置创建一个Gson对象,而如果使用GsonBuilder.create()方法创建则可以自定义一些设置,这主要是为了使创建的Gson更适合于某些特定的情况上例中第一段蓝色的代码创建了一个Gson对象,这个对象擁有对以“set”字样开头的属性的过滤的配置(如果需要过滤掉某种类型则重写ExclusionStrategy接口的shouldSkipClass(Class<?> clazz)方法即可,如果需要过滤掉多种情况则可以多创建几个ExclusionStrategy的实现类对象,并在创建Gson对象的时候设置进去即可)因此在本例中,将People对象转换成Json的时候属性setName将被过滤掉。由于json1中没有属性setName所以将json1反序列化成People对象的时候,boolean类型的setName就没有了值所以打印的时候取了boolean类型的默认值。于是有了以下结果:
此注解作用在属性上表明当序列化和反序列化的时候,这个属性将会暴露给Gson对象这个注解只有当创建Gson对象时使用GsonBuilder方式创建并调用了 方法的时候才有效,否则無效下面是一个介绍@Expose注解如何使用的例子:
此注解作用在属性上,表明这个属性在序列化成Json的时候需要将名字序列化成注解的value属性指定的值。
这个注解将会覆盖任何的 包括默认的命名策略。下面是一个介绍@SerializedName注解如何使用的例子:
6.3 Since和Until相当,请同学们自行查看官网的API文档