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

当我将json转换为Gson对象预期为BEGIN_ARRAY但为BEGIN_OBJECT时,会发生Gson错误

堵宪
2023-03-14

当我将json转换为gson时,我得到了以下错误:

E/AndroidRuntime(1142):com.google.gson.jsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_ARRAY,但BEGIN_OBJECT位于第1行第51列

  {

"ResultCode": "0",
"ErrorMessage": null,
"Payload": [
    {
        "Items": [
            {
                "Title": "Star Wars"
            },
            { … },
            { … },
            { … },
            { … },
            { … },
            { … },
            { … },
            { … },
            { … },
            { … }
        ]
    },
    {
        "Items": [ … ]
    },
    {
        "Items": [ … ]
    }
]

} 
 import java.util.List;

 public class MResult{
private String ErrorMessage;   
private String ResultCode;
private List<List<Item>> Payload;

public String getErrorMessage() {
    return ErrorMessage;
}
public void setErrorMessage(String errorMessage) {
    ErrorMessage = errorMessage;
}
public String getResultCode() {
    return ResultCode;
}
public void setResultCode(String resultCode) {
    ResultCode = resultCode;
}
public List<List<Item>> getPayload() {
    return Payload;
}
public void setPayload(List<List<Item>> payload) {
    Payload = payload;
}

}
 public class Item{

private String Title;

 public String getTitle() {
    return Title;
}
public void setTitle(String title) {
    Title = title;
}

 }
 MResult serviceResult = new Gson().fromJson(result,MResult.class);

共有1个答案

韩琛
2023-03-14

您需要另一个类来保存项

List<Foo> Payload;

class Foo{
   List<Item> Items;
}
 类似资料:
  • 问题内容: 我在列表中仅收到一个项目时收到此错误。我在服务器端REST Web服务中使用Jersey,当List返回一个元素并且当我得到它时,我仅收到错误,但是当它包含多个元素时,它可以正常工作,这就是我的工作方式它: 为什么Jersey不发送包含一个项目的列表?这是球衣的虫子吗?有没有办法使它始终序列化为数组? 当Web服务返回0元素时,这是我的JSON数据: 当Web服务返回1元素时,这是我的

  • 我将请求映射到类,如下所示: 有人能解释为什么我在请求中的数组没有与类A中的数组映射吗?

  • 问题内容: 我正在尝试将内容反序列化为自定义类型。 这段代码 引发跟随异常 为什么Gson无法将我的JSON文本正确转换为我的POJO类型? 问题答案: 作为异常消息状态 反序列化时,Gson期望使用JSON对象,但发现了一个JSON数组。由于无法从一种转换为另一种,因此引发了此异常。 此处描述JSON格式。简而言之,它定义了以下类型:对象,数组,字符串,数字和null,以及布尔值和。 在Gson

  • 我的Retrofit2调用出现以下异常: 学分类别:

  • 问题内容: 我在尝试将JSON解组到对象中时遇到GSON错误。错误( 应为BEGIN_OBJECT,但在第3行第22列处为STRING )指向下面输入的第3行。 我是否相对于Bean正确映射了JSON? 我输入的JSON看起来是这样的: 问题答案: 不,您没有正确映射它,因为您的json对象不是,它包含。 你可以创建一个类只是为了封装你,但它是清洁反序列化容器的使用 然后使用解析有趣的内容 并且我

  • 获取以下JSON的Gson解析的以下错误 11-05 15:34:00.882:w/system.err(28673):com.google.gson.jsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_OBJECT,但在第1行第5923列为BEGIN_ARRAY 我正在使用belo行解析序列化上面的JSON