使用 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中文网其他相关文章!