0

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

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

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,我不知道为什么。

4

1 回答 1

0

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

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

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

改变

final JsonNode node = mapper.valueToTree(out);

final JsonNode node = mapper.valueToTree(json); 
于 2013-09-09T11:39:44.697 回答