【问题标题】:Retrofit | Parsing nested JSON objects ("Expected BEGIN_ARRAY but was BEGIN_OBJECT at...)改造 |解析嵌套的 JSON 对象(“预期为 BEGIN_ARRAY,但在...处为 BEGIN_OBJECT)
【发布时间】:2014-07-15 12:29:01
【问题描述】:

我正在尝试将此 JSON 解析为 POJO,但出现错误

“应为 BEGIN_ARRAY,但在第 1 行第 2 列是 BEGIN_OBJECT”

我认为问题是因为我嵌套了 JSON 对象和 json 数组。这是我试图解析的 JSON 的样子:

[
   {
      "id":"3",
      "table":{
         "id":"1",
         "number":"1",
         "seats":"2",
         "description":"Vereda"
      },
      "user_id":"1",
      "status":null,
      "created_at":{
         "date":"2014-05-21 20:46:36",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "updated_at":{
         "date":"2014-05-21 20:46:36",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "items":[
         {
            "id":"1",
            "description":"",
            "name":"Caf\u00e9 mediano",
            "price":"8.5"
         },
         {
            "id":"1",
            "description":"",
            "name":"Caf\u00e9 mediano",
            "price":"8.5"
         },
         {
            "id":"1",
            "description":"",
            "name":"Caf\u00e9 mediano",
            "price":"8.5"
         },
         {
            "id":"1",
            "description":"",
            "name":"Caf\u00e9 mediano",
            "price":"8.5"
         },
         {
            "id":"1",
            "description":"",
            "name":"Caf\u00e9 mediano",
            "price":"8.5"
         },
         {
            "id":"2",
            "description":"dulce",
            "name":"Medialuna",
            "price":"3.75"
         },
         {
            "id":"2",
            "description":"dulce",
            "name":"Medialuna",
            "price":"3.75"
         }
      ]
   },
   {
      "id":"5",
      "table":{
         "id":"2",
         "number":"2",
         "seats":"4",
         "description":"Mesa grande"
      },
      "user_id":"1",
      "status":null,
      "created_at":{
         "date":"2014-05-21 20:49:21",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "updated_at":{
         "date":"2014-05-21 20:49:21",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "items":[
         {
            "id":"1",
            "description":"",
            "name":"Caf\u00e9 mediano",
            "price":"8.5"
         }
      ]
   },
   {
      "id":"6",
      "table":{
         "id":"5",
         "number":"5",
         "seats":"2",
         "description":null
      },
      "user_id":"1",
      "status":null,
      "created_at":{
         "date":"2014-05-21 20:51:12",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "updated_at":{
         "date":"2014-05-21 20:51:12",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "items":[
         {
            "id":"1",
            "description":"",
            "name":"Caf\u00e9 mediano",
            "price":"8.5"
         },
         {
            "id":"2",
            "description":"dulce",
            "name":"Medialuna",
            "price":"3.75"
         }
      ]
   },
   {
      "id":"7",
      "table":{
         "id":"1",
         "number":"1",
         "seats":"2",
         "description":"Vereda"
      },
      "user_id":"1",
      "status":null,
      "created_at":{
         "date":"2014-05-22 02:09:30",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "updated_at":{
         "date":"2014-05-22 02:09:30",
         "timezone_type":3,
         "timezone":"UTC"
      },
      "items":[

      ]
   }
]

如您所见,每个对象“ORDER”都有嵌套对象,例如“Item”“Table”等。这是我各自的 Java 类

Order.class

public class Order {

    private int id;
    private Table table;
    private int user_id;
    private Date created_at;
    private Date updated_at;

    //GETTERS AND SETTERS....

}

Table.class

public class Table {

    private int id;
    private String description;
    private int seats;
    private int number;

    //GETTERS AND SETTERS...    

}

Item.class

public class Item {


    private int id;
    private String description;
    private String name;
    private double price;

   //GETTERS AND SETTERS...
}

日期.class

public class Date {

    private String date;
    private int timezone_type;
    private String UTC; //GETTERS AND SETTERS...
}

我正在通过这样的界面调用改造:

@GET(Constants.URL_ORDERS)
public List<Order> retreiveOrders();

我不知道我做错了什么:/

【问题讨论】:

    标签: android json rest retrofit


    【解决方案1】:

    这是一个特定于我的应用程序的错误,我的 Android 应用程序没有让我的会话保持活动状态,因此我收到了一个对象 [action = "doSomething", status= "failure", message ="unauthenticated"]。我的建议是:确保您的服务器端应用程序在浏览器中运行,然后再将其部署到 android 上

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-24
      • 2014-08-01
      • 2015-11-26
      • 2018-03-27
      • 2015-11-10
      • 2016-06-28
      • 2019-02-06
      • 1970-01-01
      相关资源
      最近更新 更多