Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取JSON值失败_Java_Json_Jackson - Fatal编程技术网

Java 读取JSON值失败

Java 读取JSON值失败,java,json,jackson,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 Json

我试图理解一些遗留的生产代码

下面是一个模拟生产代码功能的测试:

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

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

"{\"messageCategory\":\"Hello World\"}"
因此,您的节点不包含名为“messageCategory”的属性

改变

final JsonNode node = mapper.valueToTree(out);

final JsonNode node = mapper.valueToTree(json);