简介
jmespath 是一个 JSON 路径查询语言,类似于 XPath 和 SQL,可以方便地从 JSON 数据中提取所需的信息。npm 包 jmespath 实现了该查询语言,可在前端和后端环境下使用。
安装
--- ------- --------
基础用法
查询语法
jmespath 查询语法基于 JSONPath 标准,并添加了一些扩展。
基本语法:
.
表示当前节点。[]
表示过滤器,支持通配符*
和数字索引。*
表示任意字段或元素。.
或[]
可以连续使用,表示多级路径查询。|
表示并集运算。not
表示逻辑非运算。and
和or
表示逻辑与和逻辑或运算。
更详细的语法介绍可以参考官方文档:https://jmespath.org/specification.html
使用示例
假设有以下 JSON 数据:
- -------- - ------- - - ----------- ------------ --------- ------ ------ -------- -------- -- --- --------- -------- ---- -- - ----------- ---------- --------- ------- ------- -------- ------ -- -------- -------- ----- -- - ----------- ---------- --------- ------- ---------- -------- ----- ------ ------- ---------------- -------- ---- - -- ---------- - -------- ------ -------- ----- - - -
我们可以使用 jmespath 查询出所有书籍的标题和价格:
----- -------- - ------------------- ----- ---- - ----- -- --- ---- -- ----- ------ - --------------------- ---------------------- ------ ------ -------- -------------------
输出结果为:
- - -------- -------- -- --- --------- -------- ---- -- - -------- ------ -- -------- -------- ----- -- - -------- ----- ------ -------- ---- - -
进阶用法
变量定义
jmespath 支持在查询语句中定义变量,以便复用。
例如,我们想要查询所有售价大于 $10 的书籍:
----- ------ - ---------------- ----- ------------------ - ------------------ ------ ------ -------- - --------- -- - - -------------------
输出结果为:
- - -------- ------ -- -------- -------- ----- - -
内置函数
jmespath 内置了一些函数,可以方便地进行字符串、数值等处理。
例如,我们想要查询所有作者名字的首字母大写:
----- ------ - ---------------- ----- ----------------------- -------------------- - -------------------
输出结果为:
- - --------- ------ ----- -- - --------- ------- ------ -- - --------- ------- --------- - -
更多内置函数可以参考官方文档:https://jmespath.org/functions.html
总结
jmespath 是一个非常实用的 JSON 查询语言,在前端和后端开发中都有广泛应用。通过本教程,我们学习了 jmespath 的基础用法和进阶用法,希
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/37734