![](/img/trans.png)
[英]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.