繁体   English   中英

使用GSON将JSON对象/数组转换为Java对象

[英]JSON Object/Array to Java object using GSON

我从GET响应收到以下JSON结构:

[
   {
      "type":"unico",
      "line_items":{
         "meta_data":[
            {
               "id":"1",
               "key":"abc"
            },
            {
               "id":"2",
               "key":"cba"
            }
         ]
      }
   },
   {
      "type":"assinatura",
      "line_items":{
         "meta_data":{
            "4":{
               "id":"1",
               "key":"123"
            },
            "5":{
               "id":"2",
               "key":"321"
            }
         }
      }
   }
]

根据该结构的meta_data对象都可以被定义为对象的列表,并根据其种类对象的数组。

我在LineItem.java类中使用以下定义:

@SerializedName("meta_data")
@Expose
private MetaData metaData;

属于"type":"assinatura"类型。

使用GSON将JSON字符串解析为Java对象时,出现错误:

java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在行1列607路径$ [0] .line_items [0] .meta_data处为BEGIN_ARRAY

有没有办法让我的Java类处理两种情况? 从我的位置,我无法更改JSON结构。

使用此JsonToPojo转换器。 这非常方便,它将根据您的Json响应创建Pojo类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM