在前端开发中,我们经常需要从 JSON 数据中提取特定的信息。这时候,使用 jsonpath 工具可以大大简化操作。而 jsonpath-plus
是一个基于 jsonpath 的底层引擎的 npm 包,它提供了许多强大的特性和灵活的选项,使得从 JSON 数据中提取信息变得更加容易。
安装和使用
你可以通过以下命令来安装 jsonpath-plus
:
--- ------- ------ -------------
安装完成之后,在你的项目中引入该包:
----- -- - -------------------------
接下来,就可以使用 jp.query()
方法来查询指定的 JSON 对象。
基本用法
假设我们有如下一段 JSON 数据:
----- ---- - - -------- - ------- - - ----------- ------------ --------- ------ ------ -------- -------- -- --- --------- -------- ---- -- - ----------- ---------- --------- ------- ------- -------- ------ -- -------- -------- ----- -- - ----------- ---------- --------- ------- ---------- -------- ----- ------ ------- ---------------- -------- ---- -- - ----------- ---------- --------- --- -- -- --------- -------- ---- ---- -- --- ------- ------- ---------------- -------- ----- - -- ---------- - -------- ------ -------- ----- - - --
简单查询
如果我们想要查询所有书籍的标题,可以使用如下语句:
----- ------ - -------------- ------------ -------------------- -- --------- -- --- --------- ------ -- -------- ----- ------ ---- ---- -- --- -------
其中的 $..title
表示从根节点开始查找所有 title 属性。
过滤条件
如果我们只想查询价格在 $10 以下的书籍,可以使用如下语句:
----- ---------- - -------------- ----------------------- - ------- ------------------------ -- - - ----------- ------------ --------- ------ ------ -------- -------- -- --- --------- -------- ---- -- - ----------- ---------- --------- ------- ---------- -------- ----- ------ ------- ---------------- -------- ---- - - --
其中的 $.store.book[?(@.price < 10)]
表示过滤出 store
对象下的 book
数组中,价格小于 $10 的书籍。
自定义返回值
如果我们只想要查询第一本书的作者和标题,可以使用如下语句:
----- --------- - -------------- ------------------ - ----------- -------- -------- ----- ----- ----- --- ----------------------- -- --------------------------------------- ---------------------- -- --- ----------------------
其中的 {resultType: 'value', flatten: true, wrap: false}
表示只返回结果中的第一个值,并将其扁平化为一个对象,并且不包含外层的数组。
深入探究
除了上述基本用法之外,jsonpath-plus
还有许多高级功能和选项,可以满足各种查询需求。
使用 parentProperty
属性
在默认情况
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/53282