首页 > Java > java教程 > 如何使用 Jackson 反序列化 JSON 对象数组?

如何使用 Jackson 反序列化 JSON 对象数组?

Barbara Streisand
发布: 2024-12-24 12:27:10
原创
967 人浏览过

How to Deserialize JSON Arrays of Objects using Jackson?

使用 Jackson 反序列化对象数组

在处理 JSON 数据时,通常需要解析对象数组。 Jackson 是一个流行的 Java 数据绑定库,提供了对反序列化此类结构的支持。

Jackson 的文档指出它可以反序列化“所有支持类型的数组”。但是,此过程的具体语法可能不会立即显而易见。为了阐明使用 Jackson 的数组反序列化,让我们探讨以下场景:

反序列化单个对象

考虑以下 JSON 输入:

{
    "id" : "junk",
    "stuff" : "things"
}
登录后复制

要将这个 JSON 反序列化为名为 MyClass 的 Java 对象,我们将使用以下内容代码:

//json input
{
    "id" : "junk",
    "stuff" : "things"
}

//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);
登录后复制

反序列化对象数组

对于 MyClass 对象数组,JSON 输入将如下所示:

[{
    "id" : "junk",
    "stuff" : "things"
},
{
    "id" : "spam",
    "stuff" : "eggs"
}]
登录后复制

为了将该数组反序列化为 MyClass 对象的 Java 列表,我们有两个options:

作为数组:

MyClass[] myObjects = mapper.readValue(json, MyClass[].class);
登录后复制

作为列表:

List<MyClass> myObjects = mapper.readValue(jsonInput, new TypeReference<List<MyClass>>() {});
登录后复制

或者,我们可以指定列表类型为:

List<MyClass> myObjects = mapper.readValue(jsonInput, mapper.getTypeFactory().constructCollectionType(List.class, MyClass.class));
登录后复制

通过遵循这些方法,您可以使用 Jackson 有效地反序列化对象数组,并在 Java 代码中方便地访问它们的内容。

以上是如何使用 Jackson 反序列化 JSON 对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板