有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

数据路径是为了通过约定的语法规则,完成对全局数据的数据提取
本文为您介绍几个简单的案例。

数组案例

以下是一些书本信息的 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,联系腾讯云图数据可视化小助手