使用改造消耗复杂的api数据

时间:2018-09-27 13:08:26

标签: java android json kotlin retrofit

{"data": 
  {
    "item1": {
            "name" : "Box"
            "price" : "50"

    },

    "item2": {
            "name" : "Bottle"
            "price" : "250"

    }, ..... 
    "item20": {
            "name" : "Pen"
            "price" : "100"
    }
}}

这是我的API结构。我不能为20个项目创建单独的POJO类,因为它效率不高。获取每件商品的名称和价格并将其设置为回收者视图的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

您必须更改JSON的格式才能正确解析。另外,您忘了在“ name”值后面加上逗号。

选项1:

{
   "data":[
      {
         "name":"Box",
         "price":"50"
      },
      {
         "name":"Bottle",
         "price":"250"
      },
      {
         "name":"Pen",
         "price":"100"
      }
   ]
}

选项2:

{
   "data":{
      "item1":{
         "name":"Box",
         "price":"50"
      },
      "item2":{
         "name":"Bottle",
         "price":"250"
      },
      "item20":{
         "name":"Pen",
         "price":"100"
      }
   }
}

选项1是更好的选择,因为您将能够在Android中将“数据”表示为数组或列表(例如ArrayList<Data>)。

通常,我建议您使用GSON之类的解析库

答案 1 :(得分:0)

简单,只需使用GSON创建一个带有Seri​​alizableNames的对象即可保存json。 然后只需创建一个与gson兼容的对象的arrayList。

其余只是普通的适配器交互。

我使用的API返回json对象的示例。它必须匹配您的json结构。 enter image description here

enter image description here

该示例在Kotlin中,但是处理json api响应也是一样。

答案 2 :(得分:0)

创建一个简单的类,然后按照图片中所述进行操作

json1

在单击“生成”选项后,您会看到GsonFromat,然后会出现一个对话框,如果您看不到GsonFormat,则下载GsonFormat插件。这是轻松创建Pojo类的最​​简单方法。

json2

将其放入框中,然后单击“确定”,它将自动为您创建该类,您可以获取数据。

{
   "data":[
  {
     "name":"Box",
     "price":"50"
  },
  {
     "name":"Bottle",
     "price":"250"
  },
  {
     "name":"Pen",
     "price":"100"
  }
   ]
 }