ram Lou:
Me gustaría transformar (con Java8 ) una lista de datos (JSON) a una estructura jerárquica.
¿Me podría decir cuál es la mejor manera de lidiar con esto?
¿Cómo puedo convertir un ArrayList a un mapa multidimensional ?
El problema es algo así como la conversión de esta:
{
"server": "Manufacturer Co.",
"vehicles": [
{
"year": 2018,
"model": "Ford Explorer (1)",
"category": "4WD"
},
{
"year": 2018,
"model": "Ford Explorer (2)",
"category": "4WD"
},
{
"year": 2017,
"model": "Ford Mustang (3)",
"category": "2WD"
}
{
"year": 2017,
"model": "Ford Mustang 4WD (4)",
"category": "4WD"
}
}
en eso
vehicles
-- year 2018
----- category: 4WD
---------- Ford Explorer (1)
---------- Ford Explorer (2)
-- year 2017
----- category: 2WD
---------- Ford Mustang (3)
----- category: 4WD
---------- Ford Mustang (4)
Gracias por tu tiempo
Hadi J:
Debe utilizar múltiples groupingBy
y luego usar mapping
a la propiedad del modelo a cobro revertido a la lista.
I'v supone que tiene un modelo de algo como esto:
public class Vehicle {
private int year;
private String model;
private String category;
//other
}
Map<Integer,Map<String,List<String>>> result = vehicles.stream()
.collect(Collectors.groupingBy(Vehicle::getYear,
Collectors.groupingBy(Vehicle::getCategory,
Collectors.mapping(Vehicle::getModel, Collectors.toList()))));