首页 » PHP教程 » PHP读取json子项技巧_四JSONPath用法

PHP读取json子项技巧_四JSONPath用法

duote123 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

解释

$

PHP读取json子项技巧_四JSONPath用法

查询根元素。
这将启动所有路径表达式。

PHP读取json子项技巧_四JSONPath用法
(图片来自网络侵删)

@

当前节点由过滤谓词处理。

通配符,必要时可用任何地方的名称或数字。

..

深层扫描。
必要时在任何地方可以利用名称。

.<name>

点,表示子节点

[‘<name>’ (, ‘<name>’)]

括号表示子项

[<number> (, <number>)]

数组索引或索引

[start:end]

数组切片操作

[?(<expression>)]

过滤表达式。
表达式必须求值为一个布尔值。

2. 函数

函数可以在路径的尾部调用,函数的输出是路径表达式的输出,该函数的输出是由函数本身所决定的。

函数

描述

输出

min()

供应数字数组的最小值

Double

max()

供应数字数组的最大值

Double

avg()

供应数字数组的均匀值

Double

stddev()

供应数字数组的标准偏差值

Double

length()

供应数组的长度

Integer

3. 过滤器运算符

过滤器是用于筛选数组的逻辑表达式。
一个范例的过滤器将是[?(@.age > 18)],个中@表示正在处理确当前项目。
可以利用逻辑运算符 && 和 || 创建更繁芜的过滤器。
字符串笔墨必须用单引号或双引号括起来([?(@.color ‘blue’)] 或者 [?(@.color “blue”)]).

操作符

描述

==

left即是right(把稳1不即是’1’)

!=

不即是

<

小于

<=

小于即是

>

大于

>=

大于即是

=~

匹配正则表达式[?(@.name =~ /foo.?/i)]

in

左边存在于右边 [?(@.size in [‘S’, ‘M’])]

nin

左边不存在于右边

size

(数组或字符串)长度

empty

(数组或字符串)为空

4. 示例

{ "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 } }, "expensive": 10}

JsonPath路径

结果

$.store.book[].author

获取json中store下book下的所有author值

$..author

获取所有json中所有author的值

$.store.

所有的东西,书本和自行车都有

$.store..price

获取json中store下所有price的值

$..book[2]

获取json中book数组的第3个值

$..book[-2]

倒数第二本书

$..book[0,1]

前两本书

$..book[:2]

从索引0(包括)到索引2(打消)的所有图书

$..book[1:2]

从索引1(包括)到索引2(打消)的所有图书

$..book[-2:]

获取json中book数组的末了两个值

$..book[2:]

获取json中book数组的第3个到末了一个的区间值

$..book[?(@.isbn)]

获取json中book数组中包含isbn的所有值

$.store.book[?(@.price < 10)]

获取json中book数组中price<10的所有值

$..book[?(@.price <= $[‘expensive’])]

获取json中book数组中price<=expensive的所有值

$..book[?(@.author =~ /.REES/i)]

获取json中book数组中的作者以REES结尾的所有值(REES不区分大小写)

$..

逐层列出json中的所有值,层级由外到内

$..book.length()

获取json中book数组的长度

标签:

相关文章

php55xhprof技巧_PHP机能分析神器XHGUI

本文先容XHGui(MySQL版)的安装、配置和利用。XHGui基于XHProf,但是较XHpro更加便捷直不雅观,由于它不须要修...

PHP教程 2024-12-14 阅读0 评论0