npm 包 jmespath 使用教程

阅读时长 4 分钟读完

简介

jmespath 是一个 JSON 路径查询语言,类似于 XPath 和 SQL,可以方便地从 JSON 数据中提取所需的信息。npm 包 jmespath 实现了该查询语言,可在前端和后端环境下使用。

安装

基础用法

查询语法

jmespath 查询语法基于 JSONPath 标准,并添加了一些扩展。

基本语法:

  • . 表示当前节点。
  • [] 表示过滤器,支持通配符 * 和数字索引。
  • * 表示任意字段或元素。
  • .[] 可以连续使用,表示多级路径查询。
  • | 表示并集运算。
  • not 表示逻辑非运算。
  • andor 表示逻辑与和逻辑或运算。

更详细的语法介绍可以参考官方文档: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

纠错
反馈