3个对象集合List<A> List<B> List<C> 根据某一字段转换成 {"A":[{"B":[{"C":{"a":"","b":""}}]}]}
时间: 2023-09-08 10:10:31 浏览: 74
集合(list为例)与数组的互相转换。
你可以使用Java中的Stream API和Collectors进行转换。具体代码如下:
```
Map<String, List<Map<String, Object>>> result = listA.stream()
.map(a -> {
Map<String, Object> bMap = new HashMap<>();
bMap.put("B", listB.stream()
.filter(b -> b.getField().equals(a.getField()))
.map(b -> {
Map<String, Object> cMap = new HashMap<>();
cMap.put("C", listC.stream()
.filter(c -> c.getField().equals(b.getField()))
.findFirst().orElse(null));
return cMap;
}).collect(Collectors.toList()));
Map<String, Object> aMap = new HashMap<>();
aMap.put("A", Collections.singletonList(bMap));
return aMap;
})
.collect(Collectors.groupingBy(map -> "A"));
```
请注意,此处的代码是示例代码,需根据实际情况进行修改。
阅读全文