我有这个 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"
}
}
}
详细信息对象将包含具有相同属性(标签、值、符号)的动态数量的对象。这是一种在java中创建类结构的方法,使用gson来接收这些数据,而无需知道所包含的对象的名称(利息,monthly_invoice...)?
谢谢!
最佳答案
在您的 Java 代码中,“详细信息”应该是
Map<String, Foo>
其中 Foo 是带有 label 、 value 和 symbol 属性的类。例如您的 JSON 会解析为如下所示的类:
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);
关于java - Gson fromJson 到属性名称未知的 java 类结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548380/