java - 杰克逊反序列化对象以列出
问题描述
这是示例 json。
{
"foo1" : "...",
"foo2" : "...",
"foo3" : "...",
"foo4" : "..."
}
我想像这样反序列化它。
class Response {
List<Foo> foos;
}
我试过这个,但没有奏效。
class Response {
...
@JsonProperty("foo\\d")
private void collect(String bar) {
foos.add(bar);
}
}
这行得通。但我想要更简单的事情。
@JsonProperty("foo1")
private void collect1(String bar) {
foos.add(bar);
}
@JsonProperty("foo2")
private void collect2(String bar) {
foos.add(bar);
}
.
.
.
解决方案
您应该尝试@JsonAnySetter
注释。
例子:
public class Test {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
String json = "{\n" +
" \"foo1\" : \"...\",\n" +
" \"foo2\" : \"...\",\n" +
" \"foo3\" : \"...\",\n" +
" \"foo4\" : \"...\"\n" +
"}";
Test test = objectMapper.readValue(json, Test.class);
}
@JsonAnySetter
void setInformation(String key, Object value) {
System.out.println(key + " " + value);
}
}
main()
方法调用的输出是:
foo1 ...
foo2 ...
foo3 ...
foo4 ...
推荐阅读
- android - 我们如何实现 Fragment 和 Activity 之间的共享视图模型通信,其中 Activity 不是 Parent
- mysql - 命令引发异常:OperationalError:靠近“<”:语法错误 sqlite3 discord.py
- parallel-processing - 景观上的共享记忆和人口动态
- javascript - 在数组中推送对象时,vue ui 没有得到更新
- wcf - 我可以将此 wsHttpBinding 转换为支持流的自定义 WCF 绑定吗?
- git - 自动删除 Gitlab 备份
- sublimetext3 - Sublime Text 在查找期间在“搜索字符串”之前添加 \b
- java - Spring boot @ExceptionHandler 没有响应自定义响应
- python - 如何提高在 Python 中调用 400 次的函数速度
- autocad - 为什么 AutoCAD 无法直接打开 dwf 文件?