考虑以下Json结构:
concat
使用JsonNode,是否可以通过poLineNumber属性值为3来获取整个子节点{id through quantity},而无需迭代所有节点并返回匹配?我需要使用JsonPath吗?
答案 0 :(得分:1)
您可以查看JsonPath。
您可以先使用ObjectMapper
从给定的json字符串创建Map<String, Object>
,然后读取它并评估JsonPath表达式。例如:
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> mappedObject = mapper.readValue(jsonString, Map.class);
// Evaluate that expression
Object result = JsonPath.read(mappedObject, "$.ubds[?(@.metaData.lineInfo.poLineNumber==3)]");
或直接用JsonPath
读取json字符串:
Object result = JsonPath.parse(jsonString).read("$.ubds[?(@.metaData.lineInfo.poLineNumber==3)]");