java - 需要使用 Jackson 反序列化此 JSON - [{}、{}、{}] - 用于 JSON 数组的 Jackson 注释是什么?
问题描述
我目前正在编写从休息服务获取 JSON 响应的 Java 客户端代码。对于我的 JSON 响应,我需要将其反序列化为 pojo。如果 JSON 的最外层包装器是包含对象列表的方括号,那么我可以使用什么 Jackson 注释将其加载到数组或 ArrayList 中?
JSON 看起来像这样:
[{"key1": "val1"}, {"key2": "val2"}, {"key3": "val3"}]
解决方案
Jackson 可以将 json 直接解组到您的对象,反之亦然。
public void givenJsonArray_whenDeserializingAsArray_thenCorrect()
throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
List<MyDto> listOfDtos = Lists.newArrayList(
new MyDto("a", 1, true), new MyDto("bc", 3, false));
String jsonArray = mapper.writeValueAsString(listOfDtos);
// [{"stringValue":"a","intValue":1,"booleanValue":true},
// {"stringValue":"bc","intValue":3,"booleanValue":false}]
MyDto[] asArray = mapper.readValue(jsonArray, MyDto[].class);
assertThat(asArray[0], instanceOf(MyDto.class));
}
推荐阅读
- r - 从 plotly orca 导出后从 R 内修改 SVG 宽度
- excel - VBA:将找到所有工作表名称中数量最多的工作表名称的函数
- excel - 如何按我从 Excel 中提取的日期过滤 Power Query?
- python - Python 3.7 字典给出错误的值作为输出
- react-native - 在具有本机基础的项目上实施 Docz
- python - 如何根据参数存在更改 argparse 选项操作与类型行为?
- react-native - 如何在 SVG 多边形内居中元素
- javascript - 如何取消选中矩阵选择复选框中的选中项目?(Wordpress/FormCraft 插件)
- r - 删除 R 中的特殊字符
- java - 如何根据单词范围检查输入单词的位置?