【发布时间】:2021-05-01 13:16:07
【问题描述】:
我有一个 JSON 结构,其中键和值是这样存储的
[
{
"key": "firstName",
"value": "John"
},
{
"key": "lastName",
"value": "Smith"
}
]
我想反序列化数组,以便每个键都是一个属性名称,并分配适当的值。
public class Customer {
private String firstName;
private String lastName;
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
我曾想过创建一个自定义反序列化器来接受一组客户属性,并根据属性名称手动设置每个属性。我担心这种方法可能会随着添加更多属性而变得脆弱,并且无法长期维护。
有人知道我可能忽略的任何有助于反序列化的 Jackson 注释吗?
【问题讨论】:
-
为你的类写一个自定义的
StdDeserializer,它使用字段反射? -
某些键已经不符合 java 命名约定。如果我能让作者确认所有可能的密钥都是合法标识符,这不是一个大问题。现在,让我们假设情况并非如此。
-
我建议这个 cmets 线程正确地应该以“答案”开头。来吧,准确地展示你的想法。
标签: java json jackson deserialization json-deserialization