如何在android中解释json格式?

but5z9lq  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(224)

这个问题在这里已经有答案了

如何在java中解析json(34个答案)
如何在android中解析json[重复](3个答案)
四年前关门了。
我有一个url,它返回以下内容,如何在android上保存3个数组(item1prices[],item2prices[],categories[])中的数据?项目价格与“类别”数组中的月份相对应。我正在学习这个教程,但是我需要帮助修改onresponse()中的逻辑来使用我的。
我见过一些这样做的例子,但我有困难认识到什么是我的案件具体。如果有人帮我开始,我以后就没事了。

{
  "dataset": [
    {
      "seriesname": "Item1 Price",
      "data": [
        {
          "value": 4.72
        },
        {
          "value": 2.81
        },
        {
          "value": 6.18
        },
        {
          "value": 5.17
        },
        {
          "value": 2.94
        },
        {
          "value": 3.77
        },
        {
          "value": 1.7
        },
        {
          "value": 6.72
        },
        {
          "value": 4.61
        }
      ]
    },
    {
      "seriesname": "Item2 Price",
      "data": [
        {
          "value": 2.49
        },
        {
          "value": 0.72
        },
        {
          "value": 4.06
        },
        {
          "value": 1.74
        },
        {
          "value": 7.23
        },
        {
          "value": 5.83
        },
        {
          "value": 2.59
        },
        {
          "value": 7.54
        },
        {
          "value": 7.02
        }
      ]
    }
  ],
  "categories": [
    {
      "label": "Jan"
    },
    {
      "label": "Feb"
    },
    {
      "label": "Mar"
    },
    {
      "label": "Apr"
    },
    {
      "label": "May"
    },
    {
      "label": "Jun"
    },
    {
      "label": "Jul"
    },
    {
      "label": "Aug"
    },
    {
      "label": "Sept"
    }
  ]
}
js4nwp54

js4nwp541#

我会和gson一起分析。
这样您就可以构建带注解的pojo,如:

public class MyData{
  @Expose @SerializedName("dataset") ArrayList<Series> dataSet;
  @Expose @SerializedName("categories") ArrayList<Category> categoryList;
}

public class Series {
  @Expose @SerializedName("seriesname") String seriesName;
  @Expose @SerializedName("data") ArrayList<DataValue> data;
}

public class DataValue{
  @Expose @SerializedName("data") float dataValue;
}

public class Category{
  @Expose @SerializedName("label") String label;
}

然后,当您需要解析时,可以使用:

Gson gson = new GsonBuilder().create();
MyData data = gson.fromJson(jsonString, MyData.class);

相关问题