这似乎有点不正常,但我在寻找一个有效的方式来变换/映射JsonNode
成POJO
。
我将模型的一些信息存储在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