原始 JSON
{
"movies": [
{"movieId":"fmen71229238","eTitle":"Mission: Impossible...","cTitle":"不可能的任務...","imageUrl":"...","releaseDate":"2011/12/15","saleType":"0"},
{"movieId":"fstw79905171","eTitle":"Seediq Bale","cTitle":"賽德克.巴萊...","imageUrl":"...","releaseDate":"2011/9/9","saleType":"0"}
]
}
定義數據類
public class MovieResponse {
public List movies;
}
public class Movie {
public String movieId;
public String eTitle;
public String cTitle;
public String imageUrl;
public String releaseDate;
public String saleType;
}
Gson 一行解析
Gson gson = new Gson();
MovieResponse response = gson.fromJson(jsonString, MovieResponse.class);
for (Movie movie : response.movies) {
Log.i("Movie", movie.eTitle); // 直接訪問字段
}
優勢
- **零樣板代碼**:無需手寫
JSONObject、JSONArray 遍歷。
- **類型安全**:編譯期檢查字段名、類型。
- **自動處理嵌套**、數組、null 值、日期格式(可配置
GsonBuilder)。
- 性能優異,廣泛用於生產環境(Retrofit 默認轉換器)。
依賴添加
// build.gradle
implementation 'com.google.code.gson:gson:2.10.1'