最近在一个项目中,服务器使用 json 作为返回信息的格式,为了加快开发速度,我使用 Gson 代替 Java 语言中自带的 JSONObject 来解析 json 格式。
当我正在享受 Gson 给我带来的便利的时候,我遇到问题了。
因为 Gson 在转化 json 字符串到对象的时候,要求类的成员变量的名称必须和 json 中的 key 值相同。但是郁闷的是,在封装一个接口的时候发现,json 字符串中的 key 为 Java 的关键字。
1 2 3 4 5 |
{ ... "new": false ... } |
按照 Gson 的约定,就必须编写一个变量名为new
的类,但是结果可想而知,编译不通过。
1 2 3 |
public class BoxSubject { private boolean new; } |
幸好,Google 已经为我们想好了解决办法,只要对该变量添加Field Naming Support就可以了。
1 2 3 4 |
public class BoxSubject { @SerializedName("new") private boolean new; } |
到此,就完美地解决了我们遇到的问题。