简介
数据路径是为了通过约定的语法规则,完成对全局数据的数据提取。
本文为您介绍几个简单的案例。
数组案例
以下是一些书本信息的 JSON 格式数据。
[{"category": "reference","author": "Nigel Rees","title": "Sayings of the Century","price": 8.95}, {"category": "fiction","author": "Evelyn Waugh","title": "Sword of Honour","price": 12.99}, {"category": "fiction","author": "Herman Melville","title": "Moby Dick","isbn": "0-553-21311-3","price": 8.99}, {"category": "fiction","author": "J. R. R. Tolkien","title": "The Lord of the Rings","isbn": "0-395-19395-8","price": 22.99}]
接下来,我们将举例如何使用数据路径的语法进行数据的筛选。
CASE 1:提取前两条数据
数据路径:
$[0,1]
或者 $[:2]
。$
表示根元素,也就是上面的整个 JSON 数据。[0,1]
表示提取下标索引为0,1的数据(也就是第一条和第二条数据)。[:2]
这是一种切片的写法,类似于数学意义上的 [0, 2)
,表示提取 索引 < 2 的数据,同理如果我们要提取后面3条数据,可以使用 [2:]
。CASE 2:筛选价格大于10的书本信息
数据路径:
$[?(@.price > 10)]
。CASE 3:筛选作者是 Herman Melville 的书本信息
数据路径:
$[?(@.author > "Herman Melville")]
。对象案例
以下是一个更复杂的 JSON 对象案例数据,如下所示:我们提供一个商店信息,它同时存储书本和自行车数据。
{"store": {"book": [{"category": "reference","author": "Nigel Rees","title": "Sayings of the Century","price": 8.95},{"category": "fiction","author": "Evelyn Waugh","title": "Sword of Honour","price": 12.99},{"category": "fiction","author": "Herman Melville","title": "Moby Dick","isbn": "0-553-21311-3","price": 8.99},{"category": "fiction","author": "J. R. R. Tolkien","title": "The Lord of the Rings","isbn": "0-395-19395-8","price": 22.99}],"bicycle": {"color": "red","price": 19.95}}}
同样接下来,我们将举例如何使用数据路径的语法进行数据的提取。
CASE 1:提取商店信息
数据路径:
$.store
。
$
表示根数据,.
表示进行根的下级节点数据的遍历,store
表示提取键为 store
的数据。CASE 2:提取所有的书本信息
数据路径:
$..book[*]
。
..
表示遍历整个 JSON 数据,book
表示提取键为 book
的数据,[*]
表示提取所有的 book 数据,不做数据的筛选。结合上面两个案例,以此类推,如果要提取 book 中前两条数据的数据路径为:
$..book[:2]
。上面是一些常用的数据路径规则,若您有其他需求,可以加入 QQ 群①:137385369 群②:720801798,联系腾讯云图数据可视化小助手。