解决Gson解析Json时,Json 中Key为Java关键字的问题

最近在写一个名为 DoubanSDK4Android 的豆瓣开发者平台 Android SDK, 在这个项目中,服务器使用 json 作为返回信息的格式,为了加快开发速度,我使用 Gson 代替 Java 语言中自带的 JSONObject 来解析 json 格式。

当我正在享受 Gson 给我带来的便利的时候,我遇到问题了。

因为 Gson 在转化 json 字符串到对象的时候,要求类的成员变量的名称必须和 json 中的 key 值相同。但是郁闷的是,在封装一个接口的时候发现,json 字符串中的 key 为 Java 的关键字。

{
...
"new": false
...
}

按照 Gson 的约定,就必须编写一个变量名为new的类,但是结果可想而知,编译不通过。

public class BoxSubject {
    private boolean new;
}

幸好,Google 已经为我们想好了解决办法,只要对该变量添加Field Naming Support就可以了。

public class BoxSubject {
    @SerializedName("new")
    private boolean new;
}

到此,就完美地解决了我们遇到的问题。

你可能感兴趣的:(解决Gson解析Json时,Json 中Key为Java关键字的问题)