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);
我有这个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);