如果我有这样的JSON文档
[
{
"number" : "650-462-9154",
"type" : "main"
},
{
"number" : "650-462-1252",
"type" : "fax"
}
]
我可以使用什么JSONPath来获取数组长度(即2),而无需对任何属性值进行硬编码?
使用我拥有的工具,这是他们提供的一些示例,这些示例无法帮助我弄清楚我需要什么价值。
[
{
"type": "add",
"id": "tt0484562",
"version": 1,
"lang": "en",
"fields": {
"title": "The Seeker: The Dark Is Rising",
"director": "Cunningham, David L.",
"genre": ["Adventure","Drama","Fantasy","Thriller"],
"actor": ["McShane, Ian","Eccleston, Christopher","Conroy, Frances",
"Crewson, Wendy","Ludwig, Alexander","Cosmo, James",
"Warner, Amelia","Hickey, John Benjamin","Piddock, Jim",
"Lockhart, Emma"]
}
},
{
"type": "delete",
"id": "tt0484575",
"link_ref": null,
"version": 2
}
]
$.[0].genre ---> 0
$.[0].fields.genre ---> 1
$.[0].fields.genre[*] ---> 4
$.[*].type ---> 2
$.[1].link_ref ---> 1
答案 0 :(得分:0)
您可以通过使用.length()
这样的函数从第一个示例中获取数组的长度:
$.length
应该返回如下内容:
[
2
]
对于第二个示例,您可以使用常规点标记($.node1.node2.node3
)访问任何数组键,并在希望获取其长度的节点键上调用length()
函数。例如,如果要获取actor数组中的值数,则可以执行以下操作:
$..actor.length
这将返回如下内容:
[
10
]
在https://codebeautify.org/jsonpath-tester和http://jsonpath.com/上进行了测试。