一尘不染

将JsonNode转换成POJO

json

这似乎有点不正常,但我在寻找一个有效的方式来变换/映射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应用于模型


阅读 424

收藏
2020-07-27

共1个答案

一尘不染

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

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

jsonObjectMapper杰克逊在哪儿ObjectMapper


在旧版的Jackson中,

MyClass newJsonNode = jsonObjectMapper.readValue(someJsonNode, MyClass.class);
2020-07-27