我知道这不是第一次有人问这个问题,但是使用Retrofit2我无法找到解决问题的正确方法.
我有一个包含String列表的对象.当我想将JSON响应转换为我的对象时,所有其他字段都可以,但是我将此字符串列表转换为我的列表时出现此错误:
Retrofit2: Expected BEGIN_ARRAY but was STRING at line 1 column 268 path $[0].images
这是我的API:
@POST("/cp/API/")// get List of products Call<List<Product>> Get_Special_Products(@Body Object request);
我的改造设置:
public Retrofit Store_retrofit(OkhttpClIEnt clIEnt) { return new Retrofit.Builder() .baseUrl(Urls.sotre_Base_Url) .clIEnt(clIEnt) .addConverterFactory(GsonConverterFactory.create()) .build(); }
我的对象:
public class Product implements Serializable { @Serializedname("ID") private int ID; @Serializedname("user_ID") private int user_ID; @Serializedname("cat_ID") private int cat_ID; @Serializedname("Title") private String Title; @Serializedname("description") private String description; @Serializedname("image") private String image; @Serializedname("images") private List<String> images;public int getUser_ID() { return user_ID; } public int getCat_ID() { return cat_ID; } public String getTitle() { return Title; } public String getDescription() { return description; } public String getimage() { return image; }public List<String> getimages() { return images; }}
这是导致图像错误的JsON的一部分:
images:[ "1487801544.jpg","1487801544.jpg","1487801544.jpg"]
解决方法:
当您的API服务无法将数组转换为Json并且retrofit将其读取为String时,通常会发生这种情况.
调用您的API服务提供商来解决将数组转换为Json的问题:)
例如
"images": "[\"1487801544.jpg\",\"1487801544.jpg\",\"148801544.jpg\"]"
改装在上面作为字符串读取,应更改如下:
"images": [ "1487801544.jpg", "1487801544.jpg", "1487801544.jpg" ]
总结 以上是内存溢出为你收集整理的android – Retrofit2:预计BEGIN_ARRAY但是STRING在第1行第268行路径$[0] .images全部内容,希望文章能够帮你解决android – Retrofit2:预计BEGIN_ARRAY但是STRING在第1行第268行路径$[0] .images所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)