【发布时间】:2023-04-03 21:16:01
【问题描述】:
我正在尝试编写一个 JSON 路径表达式来从 JSON 结构中提取所有地图和子地图。考虑 JSON:
{
"k1":"v1",
"arr": ["1","2","3" ,["7","8"] ],
"submap":
{
"a":"b",
"c":"d"
},
"submap_2":
{
"a_2":"b",
"c_2":"d",
"nested": { "x":"y" }
}
}
我想提取元素"submap", "submap_2", "nested"。
我尝试过 JSONPath 表达式,例如:
$..*[?(@.length()>0 && @.*[0] empty true)]
这会返回我想要的结构,但也会返回[ "7","8" ]。有什么办法可以用 JSONPath 做到这一点,还是用代码更好地做到这一点?
(这里有一个简洁的 JSONPath 测试工具:http://jsonpath.herokuapp.com/)
(我使用的具体实现是这个:https://github.com/jayway/JsonPath)
【问题讨论】: