首頁 >Java >java教程 >如何使用 Jackson 反序列化 JSON 物件陣列?

如何使用 Jackson 反序列化 JSON 物件陣列?

Barbara Streisand
Barbara Streisand原創
2024-12-24 12:27:10964瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn