在Android開發中,Gson是一款常用的JSON解析庫。但是我們在解析JSON數據時有時會遇到字段名與Java對象屬性名不一致的情況,這個時候我們就需要讓Gson知道如何將JSON字段名與Java對象屬性名對應上。
假設我們有如下JSON數據:
{ "user_name": "sherry", "user_age": 18, "user_email": "sherry@example.com" }
我們希望將其解析成如下Java對象:
class User { String name; int age; String email; }
可以看到,JSON字段名與Java對象屬性名不一致。
解決這個問題非常簡單,只需要在Java對象屬性上增加@SerializedName注解即可。這個注解的作用是將JSON字段名與Java對象屬性名對應起來。
class User { @SerializedName("user_name") String name; @SerializedName("user_age") int age; @SerializedName("user_email") String email; }
有時候我們還會遇到JSON字段名是駝峰式的,例如:
{ "userName": "sherry", "userAge": 18, "userEmail": "sherry@example.com" }
同樣的,我們只需要在Java對象屬性上增加@SerializedName注解即可將JSON字段名與Java對象屬性名對應起來。
class User { @SerializedName("userName") String name; @SerializedName("userAge") int age; @SerializedName("userEmail") String email; }
總結來說,解決Gson解析JSON字段名變化的問題只需要在Java對象屬性上增加@SerializedName注解,注解的參數就是對應的JSON字段名。