Gson fromJson 到 java class 结构 其中 属性 名称未知

Gson fromJson to java class structure where property names are not known

我有这个json:

{
    "details": {
        "interest": {
            "label": "example1",
            "value": "19,9",
            "symbol": "%"
        },
        "monthly_invoice": {
            "label": "example2",
            "value": "29",
            "symbol": "eur"
        },
        "start_fee": {
            "label": "example3",
            "value": "0",
            "symbol": "eur"
        },
        "monthly_pay": {
            "label": "example4",
            "value": "58",
            "symbol": "eur"
        }
    }
}

Details 对象将包含一定数量的具有相同属性(标签、值、符号)的对象。这是一种在 java 中创建 class 结构的方法,使用 gson 在不知道包含的对象名称的情况下接收此数据(兴趣,monthly_invoice...)?

谢谢!

在您的 Java 代码中 "details" 应该是

Map<String, Foo>

其中 Foo 是您的 class,具有 label 、 value 和 symbol 属性。例如你 JSON 会解析成一个 class 看起来像这样:

public class TestObject {

    public Map<String, Foo> details;

    public static class Foo {
        public String label;
        public String value;
        public String symbol;
    }
}

然后在您想要将其反序列化为 Java 实例的代码中,您可以这样做:

    Gson gson = new Gson();
    TestObject testObject = gson.fromJson(json, TestObject.class);
    System.out.println(testObject.details.get("interest").label);