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

使用java将相同日期的JSON数据分组在一起,java,json,Java,Json,我使用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" } 我需要根据日期对数据进行分组,所需格式如下所示

我使用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映射器?杰克逊,格森

请提供一些代码。让我们看看你在做什么

如果您使用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);
Map<LocalDate, Data> grouped = result
    .stream()
    .collect(
        Collectors.groupingBy(Data::getDate)
    );
然后,您可以使用Java8 Stream API对数据进行分组:

List<Data> result = new ArrayList<>();
result.add(data1);
result.add(data2);
result.add(data3);
Map<LocalDate, Data> grouped = result
    .stream()
    .collect(
        Collectors.groupingBy(Data::getDate)
    );
结果将是一张地图。你的结果应该是一个列表

因此,您应该能够简单地迭代映射并将其插入到新列表中