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

将JsonNode转换成POJO

申屠森
2023-03-14
问题内容

这似乎有点不正常,但我在寻找一个有效的方式来变换/映射JsonNodePOJO

我将模型的一些信息存储在json文件中,并且我必须支持模型的几个版本。

我要做的是将json文件加载到JsonNode的内存中,应用一些版本控制策略以使其与我的Model的最新版本匹配。

    ObjectMapper mapper = new ObjectMapper();
    BufferedReader fileReader = new BufferedReader(new FileReader(projPath));

    JsonNode rootNode = mapper.readTree(fileReader);

    //Upgrade our file in memory
    applyVersioningStrategy(rootNode);

    ProjectModel project = mapJsonNodeToProject(rootNode);

除非有更快的方法,否则我可能最终将手动将其JsonNodes应用于模型


问题答案:

在Jackson 2.4中,可以进行如下转换:

MyClass newJsonNode = jsonObjectMapper.treeToValue(someJsonNode, MyClass.class);

jsonObjectMapper杰克逊在哪儿ObjectMapper

在旧版的Jackson中,

MyClass newJsonNode = jsonObjectMapper.readValue(someJsonNode, MyClass.class);


 类似资料:
  • 我正在使用websocket和JsonNode开发Play framewrok 2。前端通过使用websocket连接到play framework后端。我将javascript数组转换为json节点,并通过使用webscoket连接将其发送到后端。现在,我的问题是如何将json对象转换为java数组或任何合适的结构,以便操作数据。 这是我创建的json对象 这是动态填充的数组 下面的代码发送数据

  • 线程“main”java.lang.nosuchmethoderror中出现异常:com.fasterxml.jackson.core.jsonFactory.createparser(ljava/net/URL;)lcom/fasterxml/jackson/core/jsonParser;在com.fasterxml.jackson.databind.objectmapper.readtree

  • 问题内容: 是否可以将Java对象直接转换为JsonNode-Object? 我发现解决此问题的唯一方法是将Java对象转换为String,然后转换为JsonNode: 问题答案: 从Jackson 1.6开始,您可以使用: 要么

  • 问题内容: 我将JSON库从org.json更改为Jackson,我想迁移以下代码: 现在在杰克逊,我有以下几点: 但是我不喜欢那里的演员,有可能吗?有没有一种等效于的方法,以便在不是数组的情况下进行适当的错误处理? 问题答案: 是的,Jackson手动解析器的设计与其他库完全不同。特别是,您会注意到它具有通常与其他API的数组节点关联的大多数功能。因此,您无需强制转换为即可使用。这是一个例子:

  • 问题内容: 给定员工和公司等级 和我的代码如下 我希望我能得到这样的结果 这是一个简单的问题,但是我有些困惑。…尤其是Gson和Json…。 请不要提出其他图书馆,我 强制NEED 这个库的工作。而且由于某些情况,我 不 想要这个课。 因此,我需要 手动 将其序列化为json字符串。 编辑: @Sotirios Delimanolis声明的类是设计类之间关系的正确方法。但是,那不是我想要的。 @h