多次元地図にリストを変換します

ルー・ラム:

私は(と変換したいのですがJava8階層構造に)(JSON)データのリストを。

あなたはこれに対処するための最良の方法は何かを教えていただけますか?

どうすれば変換できるのArrayListをする多次元マップ

問題は、この変換のようなものです:

{
"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"
    }
}

それに

vehicles
-- year 2018
----- category: 4WD
---------- Ford Explorer (1)
---------- Ford Explorer (2)
-- year 2017
----- category: 2WD
---------- Ford Mustang (3)
----- category: 4WD
---------- Ford Mustang (4)

御時間ありがとうございます

ハディJ:

あなたは、複数使用する必要がありgroupingBy、その後、使用mappingリストにコレクトモデルプロパティに。

I'vあなたは、このようなモデルのものを持っているはず。

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()))));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=200836&siteId=1