当前位置: 首页 > 知识库问答 >
问题:

Android Java预期的是BEGIN_ARRAY,但BEGIN_OBJECT位于第1行第11列path$.Total[重复]

盖和泰
2023-03-14
{
"total": {
"confirmed": 38292,
"recovered": 7925,
"deaths": 544,
"tested": 266509
},
"last": {
"tested": "8015",
"confirmed": "1541",
"recovered": "346",
"deaths": "22"
},
"lastUpdate": "Wednesday, 27 May, 2020 03:32PM"
}
public class Stat {
private List<Total> total;
private List<Last> last;
private String lastUpdate;

public List<Total> getTotal() {
    return total;
}

public void setTotal(List<Total> total) {
    this.total = total;
}

public List<Last> getLast() {
    return last;
}

public void setLast(List<Last> last) {
    this.last = last;
}

public String getLastUpdate() {
    return lastUpdate;
}

public void setLastUpdate(String lastUpdate) {
    this.lastUpdate = lastUpdate;
}
}
ApiInterface apiInterface = ApiClient.getApiClient().create(ApiInterface.class);
    Call<Stat> call = apiInterface.getStats();
    call.enqueue(new Callback<Stat>() {
        @Override
        public void onResponse(Call<Stat> call, Response<Stat> response) {
            progressDialog.dismiss();
            if (response.isSuccessful()) {
                int code = response.code();
                Log.i("code ", Integer.toString(code));
            }
        }

        @Override
        public void onFailure(Call<Stat> call, Throwable t) {
            progressDialog.dismiss();
            Log.i("error ", t.getMessage());
        }
    });
@GET("stats")
Call<Stat> getStats();

共有1个答案

茅炯
2023-03-14

在您的模型中,total是一个列表,但是在响应中,您得到的是total的一个JSON对象。您应该将其转换为单个Total对象,而不是List。或者,您可以在服务器中进行更改,以返回对象列表,而不是单个对象。

查看您的代码,您也应该对“last”做同样的操作。

以后可以使用http://www.jsonschema2pojo.org/将JSON转换为JAVA POJO类。

 类似资料:
  • 问题内容: 我知道这不是第一次有人问这个问题,但是有了Retrofit2,我找不到合适的解决方案。我遵循了在线教程,效果很好。当我将相同的代码应用于自己的端点时,会出现以下异常:我不知道该如何解决。 接口: 客户代码: 此代码与此有效负载一起使用: 但与此不: 我的音乐课: 问题答案: 当你说“此代码正在使用此有效负载:…而不是与此:: …”时,这是预期的,这就是假定的工作方式。实际上,错误消息告

  • 问题内容: 我刚从gson开始,我想解析一个以对象开头的JSON字符串,并且总是得到相同的错误JSON。 我一直遇到错误: 我的日志中的错误指向这一行: 这是我的pojo 问题答案: 您的主类将数据作为列表。您的JSON将其作为对象。类型需要匹配。如果您希望main中只有1个数据,请不要使用列表。如果期望1个或多个数据,则使生成数据的代码向下发送一个数组(即使该数组中只有1个对象)。

  • 问题内容: 我遇到错误了。 由于以下原因,无法解析JSON:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_ARRAY,但在第1行第2列为BEGIN_OBJECT 服务器网址 执行请求 上课后 我该如何解决? 问题答案: 您在注释中声明返回的JSON是这样的: 您告诉Gson您有一个对象数组:

  • 问题内容: 我想解析一个JSON: 但是我收到一条错误消息: ,但位于第1行第1列 问题答案: 即使没有看到你的JSON字符串,你也可以从错误消息中得知,它不是要解析为类实例的正确结构。 Gson希望你的JSON字符串以对象打开括号开头。例如 但是你传递给它的字符串以开引号开头

  • 在阅读@Ridcully的响应之后,我想问一下是否有一种方法可以更新,以便它知道JSON是一个数组。比如?