【问题标题】:Error parse json for retrofit 2, expected begin array but was begin object为改造 2 解析 json 时出错,预期为开始数组,但为开始对象
【发布时间】:2020-11-20 02:44:27
【问题描述】:

应为 BEGIN_ARRAY,但在第 1 行第 2 列路径中为 BEGIN_OBJECT

我的界面是这样的

public interface UsersApi {
   @GET("/api/?results=20")
   Call<List<Result>> getData();
}

Json API

{
   "results": [
      {
         "gender":"female",
         "name":{
            "title":"Miss",
            "first":"Lana",
            "last":"Da Silva"
            }
      }
    ]
}

【问题讨论】:

  • 请发布您的Result POJO
  • 这是我的 POJO 类,发布在 pastebin 上,因为它包含 80 多行 pastebin.com/vXSvejEp
  • 您使用改造?你能发布初始化吗
  • 和我在大锅里做的一样,但是里面没有错误,在java中是pastebin.com/v5TUP6gM

标签: java android gson retrofit2


【解决方案1】:

请创建如下所示的模态类,例如

public class Modal {

@SerializedName("results")
private List<Result> mResults;

public List<Result> getResults() {
    return mResults;
}

public void setResults(List<Result> results) {
    mResults = results;
}

}



public interface UsersApi {
@GET("/api/?results=20")
Call<Modal> getData();
}

【讨论】:

  • 当 Retrofit 文档提倡 @stepan 的做法 square.github.io/retrofit 时,我真的不明白这会有什么帮助
  • 如果您的响应从 jsonArray 开始,您可以使用 Call> 您的响应来自 JsonObject。您的回复:{“结果”:[{“性别”:“女性”,“姓名”:{“标题”:“小姐”,“第一”:“拉娜”,“最后”:“达席尔瓦”}}] } 需要回复:[ { "gender":"female", "name":{ "title":"Miss", "first":"Lana", "last":"Da Silva" } } ]
  • 抱歉我明白你的意思了!
猜你喜欢
  • 2021-05-03
  • 1970-01-01
  • 2022-01-03
  • 2018-07-20
  • 2014-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多