首页 > 解决方案 > 如果有很多二级字段,如何解析嵌套的 json 文件?

问题描述

我正在尝试用 gson 解析一个 json 文件,我找到了多种解决方案。但我的问题是,我有很多领域?在课堂上真正把它们全部写下来。如何在不创建带有 name1 - name564 的类的情况下获取汽车内的信息 + 颜色?这是一个示例 json:´

{"test":
    {"Name1":
        {"number":"123",
        "color":"red",
        "cars":{"BMW":1,
            "PORSCHE":2,
            "MERCEDES":4,
            "FORD":6}
        },
    .
    .
    .
    .
    .
    .
    "Name564":
        {"number":"143",
        "color":"blue",
        "cars":{"BMW":9,
                "PORSCHE":2,
                "MERCEDES":3,
                "FORD":7}
        }
    }
}

标签: javagson

解决方案


您可以Map用于映射。这是解析您的示例的代码:

class JsonRoot {
    Map<String, JsonName> test;
}

class JsonName {
    String number;
    String color;
    Map<String, Integer> cars;
}

...
JsonRoot jsonRoot;
Gson gson = new Gson();
try (BufferedReader reader = Files.newBufferedReader(Paths.get("test.json"))) {
    jsonRoot = gson.fromJson(reader, JsonRoot.class);
}

推荐阅读