Convertir una lista de mapa multidimensional

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 groupingByy luego usar mappinga 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()))));

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=200839&siteId=1
Recomendado
Clasificación