[英]Android JSON parsing using Retrofit and GSON gets malformed JSON error
[英]Retrofit JSON Error parsing error
當我嘗試解析以下JSON響應時,Retrofit給了我這個錯誤
生的
[{"DeviceName":"Samsung Galaxy A5","Brand":"Samsung"...},{"DeviceName":"Samsung Galaxy A5 Duos"... ...]
預期BEGIN_ARRAY但在第1行第2列路徑$為BEGIN_OBJECT
@FormUrlEncoded
@PATCH("/v1/getphone/")
Call<List<Phone>> getPhoneInfo(@Field("device") String device);
Java類
public class Phone {
@SerializedName("DeviceName")
@Expose
public String DeviceName;
@SerializedName("Brand")
@Expose
public String Brand;
@SerializedName("technology")
@Expose
public String technology;
....
有幫助嗎? 謝謝
將您的Phone類作為列表放在另一個類中:
public class Root {
private List<Phone> phone;
//getters and setters here
}
並改變這一行:
Call<List<Phone>> getPhoneInfo(@Field("device") String device);
至
Call<Root> getPhoneInfo(@Field("device") String device);
在改造中你需要一個數組名來創建一個類。你的json是有效的,但響應沒有任何數組名,所以它不能以這種方式解析。你必須通過獲取json字符串手動解析它從你在這方面的改造中的回應
ApiServiceClient.getApiService().yourFunctionName().enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Response<ResponseBody> response, Retrofit retrofit) {
try {
String jsonString=response.body().string();
Log.e(TAG, "onResponse: "+response.body().string());
//Parse your json here
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Throwable t) {
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.