它应该是这么简单,但在尝试了一个小时#embarrasing之后我就找不到了 .
我需要获取一个JSON字符串,例如 {"k1":v1,"k2":v2}
,解析为 JsonNode
.
JsonFactory factory = new JsonFactory();
JsonParser jp = factory.createJsonParser("{\"k1\":\"v1\"}");
JsonNode actualObj = jp.readValueAsTree();
给
java.lang.IllegalStateException:没有为解析器定义的ObjectCodec,无法将JSON反序列化为JsonNode树
5 回答
第三种变体:
Richards回答略有不同,但
readTree
可以采用字符串,因此您可以将其简化为:理查德的回答是正确的 . 或者你也可以创建一个
MappingJsonFactory
(在org.codehaus.jackson.map
中)知道在哪里找到ObjectMapper
. 您得到的错误是因为常规JsonFactory
(来自core
包)与ObjectMapper
(在mapper
包中)没有依赖关系 .但通常你只需使用
ObjectMapper
并且不用担心JsonParser
或其他低级组件 - 如果你想对数据绑定流进行数据绑定或进行低级处理,则只需要它们 .您需要使用
ObjectMapper
:有关创建解析器的更多文档可以在here找到 .