如果从json重复相同的日期,如何添加值

时间:2018-03-12 07:01:53

标签: java android html json

我开发了一个带有图形值的Android应用程序。我在这里挣扎。服务器像这样返回json对象

[{
    "date": "01-03-2018",
    "value": "12",
    },
    {
    "id": "01-03-2018",
    "value": "8",
    },
    {
    "id": "02-03-2018",
    "value": "3",
    },
    {
    "id": "03-03-2018",
    "value": "5",
    },
    {
    "id": "03-03-2018",
    "value": "8",
    },
    {
    "id": "04-03-2018",
    "value": "21",
    }]

在添加到android中的arraylist之前,json应该像这样转换成

[{
    "date": "01-03-2018",
    "value": "20",
    },

    {
    "id": "02-03-2018",
    "value": "3",
    },
    {
    "id": "03-03-2018",
    "value": "13",
    },
    {
    "id": "04-03-2018",
    "value": "21",
    }]

请帮帮我!提前谢谢

1 个答案:

答案 0 :(得分:0)

我认为没有必要将JSON字符串转换为另一个JSON字符串。 除此之外,您可以直接使用ArrayList或使用HashMap存储数据。

如果您想使用HashMap,请查看下面的

Map<String, Integer> map = new HashMap<>();

for (int i = 0; i < jsonArray.length; i++) {
    JSONObject list = jsonArray.getJSONObject(i);
    String key = list.getString("date");
    if (!map.containsKey(key) {
        map.put(key, list.getInt("value");
    } else {
        int val = map.get(key) + list.getInt("value");
        map.put(key, val);
    }
}