读取JSON值失败

时间:2013-09-09 10:59:40

标签: java json jackson

我正在尝试了解一些遗留的生产代码。

这是一个模拟生产代码的测试:

Map json = new HashMap();
    json.put("messageCategory", "Hello World");

    ObjectMapper mapper = new ObjectMapper();

    String out = mapper.writeValueAsString(json);

    System.out.println(out);

    final JsonNode node = mapper.valueToTree(out);

    Assert.assertEquals("Hello World", node.findValue("messageCategory"));

输出是:

{"messageCategory":"Hello World"}
junit.framework.AssertionFailedError: 
Expected :Hello World
Actual   :null

valueToTree方法返回null,我不知道为什么。

1 个答案:

答案 0 :(得分:0)

它是null,因为您在valueToTree()调用中序列化字符串。因此,在映射之后,您的节点包含此表单的单个字符串:

"{\"messageCategory\":\"Hello World\"}"

因此您的节点不包含名为“messageCategory”的属性。

更改

final JsonNode node = mapper.valueToTree(out);

final JsonNode node = mapper.valueToTree(json);