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);