【发布时间】:2022-11-27 21:37:47
【问题描述】:
我有像下面这样的 json,我从第三方 API(它有像 excel 这样的文件)收到;
{
"items": [
{
"id": "3462645966",
"name": "UK Professional Solutions",
"column_values": [
{
"title": "email",
"value": "test@gmail.com"
},
{
"title": "policy",
"value": null
},
{
"title": "policyNumber",
"value": 55315287813
},
{
"title": "excess",
"value": 0
}
]
},
{
"id": "3462645967",
"name": "US Professional Solutions",
"column_values": [
{
"title": "email",
"value": "test@gmail.com"
},
{
"title": "policy",
"value": null
},
{
"title": "policyNumber",
"value": 55315287813
},
{
"title": "excess",
"value": 0
}
]
}
]
}
我想知道如何将 column_values 数组映射到这里的 java 类;
@Data
public class Item {
private int id;
private String name;
@JsonProperty("column_values")
private List<Column> columns;
@Data
public static class Column{
private String email;
private String policy;
private long policyNumber;
}
}
我怎样才能做这个映射或编组解组?是否有任何开源库可以帮助完成这项工作?这里有没有像Spark这样的数据处理库可以使用?
【问题讨论】:
-
您没有展示您尝试过的内容(也没有描述失败的内容)。
-
@AlexanderIvanchenko column_values 带有标题和值,它不能映射到电子邮件,它是起始索引处的标题。我需要将此标题和值映射到 java 属性。您会看到电子邮件是 Java 端的属性和 API 响应端的标题。我需要找到一种方法将 java 属性映射到标题/值
-
“column_values 带有标题和值,无法映射到电子邮件”- 你能编辑这个问题并展示这个吗,即提供代码(即你如何尝试反序列化你的 JSON) 连同描述什么失败(如果您遇到异常 - 提供堆栈跟踪)。
-
我不能使用 jackson 之类的库来将 json 编组/解编为 java 对象。我正在努力寻找如何完成这项工作。 API 给出标题和值...我希望标题成为 API 的属性名称和值,以便将值分配给这样的 java 对象属性; "email": "test@gmail.com" 来自 {"title": "email", "value":"test@gmail.com"}
标签: java