当前位置: 首页 > 面试题库 >

Java 如何使用Jackson来反序列化对象数组

孙言
2023-03-14
问题内容

支持deserialising“所有支持类型的数组”,但我不能找出确切的语法这一点。

对于单个对象,我可以这样做:

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

//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);

现在,对于数组,我想这样做:

//json input
[{
    "id" : "junk",
    "stuff" : "things"
},
{
    "id" : "spam",
    "stuff" : "eggs"
}]

//Java
List<MyClass> entries = ?

有人知道是否有不可思议的命令吗?如果没有,那么解决方案是什么?


问题答案:

首先创建一个映射器:

import com.fasterxml.jackson.databind.ObjectMapper;// in play 2.3
ObjectMapper mapper = new ObjectMapper();

作为数组:

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));


 类似资料:
  • 问题内容: 在杰克逊的数据绑定的文档表明,杰克逊支持deserialising“所有支持类型的数组”,但我不能找出确切的语法这一点。 对于单个对象,我可以这样做: 现在,对于数组,我想这样做: 有人知道是否有不可思议的命令吗?如果没有,那么解决方案是什么? 问题答案: 首先创建一个映射器: 作为数组: 作为列表: 指定列表类型的另一种方法:

  • 我有一个类,它可以很好地序列化和反序列化: 我还有一个< code>PacketResponse对象,类似于: 对象的序列化工作正常,结果如下: 然而,当我试图将这个JSON反序列化回一个< code>PacketResponse对象时,使用 我得到一个。 似乎它正在尝试反序列化 ,但由于它没有直接执行此操作,杰克逊看不到 注释,而是正在寻找 字段(因为这是构建器方法的名称)。 有人能帮我找出反序

  • 我目前正在开发一个Java web应用程序,它使用Magento REST API公开的JSON数据。api返回的数据示例如下: 我的应用程序中有一个Java类,如下所示: 我想对数据进行反序列化,并将其转换为,但我总是得到以下错误: 这是我用来将JSON响应反序列化为ArrayList的语句行: 有人能分享一些见解吗?我看到一些例子,返回的JSON对象前面没有任何ID。那是因为我做错了什么吗?非

  • 我需要一个自定义反序列化器来在复杂的POJO中转换字符串。反序列化工作直到使用反序列化器:特别是使用自定义反序列化器时,我的对象的非对象属性不会序列化。 我有一个restful Web服务,它有一个pojo作为参数。 所以我的类PreentivoWs需要一个方法。这里是类定义: 在jsonObject中,我有一个枚举定义为 但此对象需要转换反序列化程序: 并在财产上标注: fromString方法

  • 我有一个JSON,它带有一个包含任意键和值类型的标记,我想将其读入Java中POJO内的映射。映射将是指向JsonValue或JsonNode之类的字符串。我正在使用对象映射器解析json。 有人对如何设置我的POJO来与杰克逊一起完成这一任务有什么建议吗?还是一种更好的方式? Json示例: 映射方法: 我的POJO:

  • 如何用jackson(Java)反序列化Object中的json对象(在我的例子中,字段中提供对象)? 输入字符串: {“header”:“OFFER”,“message”:“{”author\“:\”Peter Smith\“,\”previous\“:null,\”current\“:{”id\“:\”eOUQieQdvB\“,”authorUserId\“:\”foo\“}” {“autho