Jackson によるオブジェクトの配列の逆シリアル化
Jackson のドキュメントには、オブジェクトの配列の逆シリアル化のサポートが記載されていますが、具体的な構文は不明瞭な場合があります。オブジェクトの配列を逆シリアル化するための 2 つのアプローチを検討してみましょう。
シリアル化に関する考慮事項
オブジェクトの配列に対する次の JSON 入力について考えてみましょう。
[{ "id" : "junk", "stuff" : "things" }, { "id" : "spam", "stuff" : "eggs" }]
逆シリアル化アプローチ 1: としてArray
ObjectMapper をインスタンス化し、readValue を使用して入力をターゲット オブジェクト タイプの配列として逆シリアル化します:
// Instantiate an ObjectMapper ObjectMapper mapper = new ObjectMapper(); // Deserialize JSON into an array of MyClass objects MyClass[] myObjects = mapper.readValue(jsonInput, MyClass[].class);
逆シリアル化アプローチ 2: リストとして
入力をリストとして逆シリアル化するには、新しい TypeReference を使用できます。または、constructCollectionType:
オプション a: TypeReference を使用する
// Create TypeReference for a list of MyClass objects TypeReference<List<MyClass>> typeRef = new TypeReference<List<MyClass>>() {}; // Deserialize JSON input using the TypeReference List<MyClass> myObjects = mapper.readValue(jsonInput, typeRef);
オプション b:constructCollectionType
// Create a CollectionType for a list of MyClass objects JavaType type = mapper.getTypeFactory().constructCollectionType(List.class, MyClass.class); // Deserialize JSON input using the CollectionType List<MyClass> myObjects = mapper.readValue(jsonInput, type);
を使用するこれらのアプローチを使用すると、オブジェクトの配列を Java の目的のデータ構造に柔軟に逆シリアル化できます。ジャクソン。
以上がJavaを使用してJacksonでオブジェクトの配列を逆シリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。