【问题标题】:Convert JsonNode object to Map将 JsonNode 对象转换为 Map
【发布时间】:2015-01-02 04:18:33
【问题描述】:

我有一个 C# 程序向我发送一个 json 对象。 我正在制作一个 Java Play 网站来捕获 POST 数据。 我得到了正确的数据作为 JsonNode 对象,但需要将其转换为 Map

我正在使用com.fasterxml.jackson.databind.JsonNode

这是我正确捕获 JsonNode 对象的地方:

public static Result index() {
    JsonNode json = request().body().asJson();
}

现在我有了对象,我需要弄清楚如何将其转换为Map,这样我就可以对它施展魔法了。稍后我想将 Map 转换回 json 对象以在响应中发送。

我一直在查看文档,但可用的方法并不能作为解决方案。

这是我一直在为这个特定的 JsonNode 对象引用的文档: http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/JsonNode.html

【问题讨论】:

    标签: java json jackson playframework-2.2


    【解决方案1】:

    来到这里试图自己找到答案。再挖深一点,找到了一点答案here

    基本上只需使用ObjectMapper 为您转换值:

    ObjectMapper mapper = new ObjectMapper();
    Map<String, Object> result = mapper.convertValue(jsonNode, new TypeReference<Map<String, Object>>(){});
    

    【讨论】:

    • 更正,顺便是Map。该值可以是字符串、整数、..
    • 你不妨写 Map result = mapper.convertValue(jsonNode, new TypeReference>(){});避免警告从 Map 到 Map. 的未检查分配
    猜你喜欢
    • 2014-09-21
    • 2016-10-12
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 2011-12-23
    相关资源
    最近更新 更多