我建議你使用Google's Gson library,以序列化/反序列化的Json字符串POJO的和反序列化回來。 Retrofit2還支持Gson作爲轉換器。
添加compile 'com.squareup.retrofit2:converter-gson'
到您的build.gradle營造改造實例如下圖所示:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
定義你的Java類,並與GSON的SerializedName
標籤註釋它們。
public class MyAnswer {
@SerializedName("data1")
public String data1;
@SerializedName("data2")
public String data2;
@SerializedName("error")
public String error;
}
然後你就可以得到在onResponse方法的POJO:
@Override
public void onResponse(Call<ExampleClass> call, Response<ExampleClass> response) {
ExampleClass exampleClass = response.body();
......
}
您也可以從Json的反序列化自己:
Gson gson = new GsonBuilder().create();
ExampleClass ec = gson.fromJson(jsonString, ExampleClass.class);
或者序列化JSON:
ExampleClass ec = new ExampleClass();
ec.data1 = "Some text";
ec.data2 = "Another text";
Gson gson = new GsonBuilder().create();
String jsonString = gson.toJson(ec);
你也可以創建嵌套/ co與Gson混合結構。 欲瞭解更多信息,請訪問their user guide。