簡體   English   中英

使用Java將同一日期JSON數據分組在一起

[英]Grouping same date JSON data together Using java

我已經使用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映射器? 傑克遜,GSON,...?

並請提供一些代碼。 這樣我們就可以看到您在做什么。


如果使用Java創建了JSON對象,則應該具有Java Object結構,對嗎?

像這樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM