最近在寫一個名為 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;
}
到此,就完美地解決了我們遇到的問題。