使用 Jackson 反序列化对象数组
Jackson 文档声称支持反序列化对象数组,但具体语法可能不清楚。让我们探索两种反序列化对象数组的方法。
序列化注意事项
考虑对象数组的以下 JSON 输入:
[{ "id" : "junk", "stuff" : "things" }, { "id" : "spam", "stuff" : "eggs" }]
反序列化方法1:As 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:As List
要将输入反序列化为列表,可以使用 new 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);
通过这些方法,您可以灵活地将对象数组反序列化为所需的使用 Jackson 的 Java 数据结构。
以上是如何使用 Java 反序列化 Jackson 中的对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!