gpt4 book ai didi

java - 使用java将相同日期的JSON数据分组在一起

转载 作者:行者123 更新时间:2023-11-30 06:53:25 25 4
gpt4 key购买 nike

我已经使用 java 创建了一个 json 对象,它的值如下所示

{
"result":[
{"ID":7252,"Age":52,"Date":"2015-11-25","DAY":"Wednesday","Gender":"M"},
{"ID":7252,"Age":52,"Date":"2015-12-05","DAY":"Saturday","Gender":"M"},
....
],
"status":"ok"
}

我需要按日期对数据进行分组,要求的格式如下所示

{
"result":[
{"2015-11-25":[
{"ID":7252,"Age":52,"Date":"2015-11-25","DAY":"Wednesday","Gender":"F"},
{"ID":7252,"Age":52,"Date":"2015-11-25","DAY":"Wednesday","Gender":"M"}
]},
{"2015-10-25":[
{"ID":7252,"Age":52,"Date":"2015-10-25","DAY":"Tuesday","Gender":"F"},
{"ID":7252,"Age":52,"Date":"2015-10-25","DAY":"Tuesday","Gender":"M"}
]},
],
"status":"ok"
}

基本上我需要在 JSON 中将所有相同的日期数据组合在一起以日期为键我如何使用 java 实现这种 JSON 格式

最佳答案

您使用哪种 JSON 映射器? jackson 、GSON、……?

请提供一些代码。这样我们就可以看到您在做什么。


如果您使用 Java 创建 JSON 对象,您应该有一个 Java 对象结构,对吗?

像这样:

class Data {
int id;
int age;
LocalDate date;
...
}

还有你的数据的数组/列表:

List<Data> result = new ArrayList<>();
result.add(data1);
result.add(data2);
result.add(data3);

然后您可以使用 Java8 Stream API 对您的数据进行分组:

Map<LocalDate, Data> grouped = result
.stream()
.collect(
Collectors.groupingBy(Data::getDate)
);

结果将是一个 map 。您的结果应该是一个 List

因此,您应该能够简单地遍历 Map 并将其插入到新的 List 中。

关于java - 使用java将相同日期的JSON数据分组在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37630350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com