哪个网站可以做付费推广,网络营销的定义,win系统更新后 wordpress,鲜花网站建设结构布局JMESPath#xff08;JSON Matching Expression Path#xff09;
一种查询语言。
主要用于从JSON文档中检索和过滤数据。
通过写表达式提取和处理JSON数据#xff0c;而无需编写复杂的代码。
功能#xff1a;数据提取、过滤、转换、排序。
场景#xff1a;处理API响应…JMESPathJSON Matching Expression Path
一种查询语言。
主要用于从JSON文档中检索和过滤数据。
通过写表达式提取和处理JSON数据而无需编写复杂的代码。
功能数据提取、过滤、转换、排序。
场景处理API响应、数据分析、数据转换 etc。 数据提取从复杂的JSON文档中提取所需的信息。例如从包含多个嵌套对象和数组的JSON文档中提取特定属性。
数据过滤基于特定条件过滤JSON数据。例如从一个包含多个对象的数组中过滤出满足特定属性值条件的对象。
数据转换将JSON数据转换为其他格式。例如将一个包含多个属性的对象转换为一个只包含部分属性的新对象或将一个数组转换为一个新的数组其中的元素经过特定计算或操作。
数据排序根据特定属性对JSON数据进行排序。
JMESPath — JMESPathhttps://jmespath.org/
本文主要以 JMESPath Tutorial and Examples 为操作示例还有包括一些其他常用示例
目录
一些常用调用方式
一些常用表达式
一些常用嵌套语句 一些常用调用方式
源jmespath结果备注{ demo: hello world }demohello worldstr{ demo: 1 }demo1int{ demo: [1, 2] } demo / demo[*] / demo[:] / demo[] [1,2
] array{ demo: { key: value, k: v, a: {b: c} } }demo {key: value,k: v,a: {b: c}
} object{}demonullnull
元素获取
源jmespath结果备注{ demo: { key: value, k: v, a: {b: c} } }demo.key / demo.keyvalue同上demo.a.bc同上demo.[key, k] [
value,v
] 同上demo.{k1: key, k2: k} / demo.{k1: key, k2: k} {k1: value,k2: v
} {d:{}}d{}{ demo: [1, 2, 3] }demo[0] / demo[:1]1{d:[]}d[]同上demo[2:]3slice[start:stop:step]或[start:stop]step为负则倒取同上demo[3]null同上demo[1:3][2, 3]slice同上demo[::-1] [3, 2, 1] slice同上demo[::2] [1,3] slice 一些常用表达式
源jmespath结果备注{ demo: [1, 2, 3] }to_string(demo) [1,2,3] 转字符串 to_string打平显示使用同上length(demo)3长度 length同上type(demo) array { demo: { key: value, k: v, a: {b: c} } }to_string(demo) {\key\:\value\,\k\:\v\,\a\:{\b\:\c\}} 同上length(demo)3同上type(demo) object {a: 1.1}to_number(a)1.1to number转数字{ demo: [1, 2, 19] }max(demo)19max最大值同上min(demo)1min最小值同上avg(demo) 7.333333333333333 avg平均数显示长度控制在16位同上sum(demo)22sum和同上hhh || demo[0]1|| 同上demo[1] || demo[2]2同上demo[1] demo[2]19 { a: [ { b1: James, b2: d, c: 30 }, { b1: Jacob, b2: e, c: 35 }, { b1: Jayden, b2: f, c: 25 } ] }a[?c 18] [{b1: Jacob,b2: e,c: 20},{b1: Jayden,b2: f,c: 23}
] 条件选择 filter同上a[?c 18].{b1: b1, age: c} [{b1: Jacob,age: 20},{b1: Jayden,age: 23}
] 同上a[?c18] [{b1: James,b2: d,c: 18}
] 同上a[?c18].{b1: b1, age: c} [{b1: James,age: 18}
] 同上a[?c20].[b1, b2] [[Jacob,e]
] 同上a[?c20].[b1, b2] | [] / a[?c20].[b1, b2] | [0] [Jacob,e
] 管道表达式。 | [] 或 | [0]的写法能消除嵌套下的外[] 同上a | [0] / a | [] {b1: James,b2: d,c: 18
} 同上a | [1] {b1: Jacob,b2: e,c: 20
} {a:[{b1:詹姆斯,b2:d,c:30},{b1:雅各布,b2:e,c:35},{b1:杰登,b2:f,c:25}]}sort_by(a, c) [{b1: 杰登,b2: f,c: 25},{b1: 詹姆斯,b2: d,c: 30},{b1: 雅各布,b2: e,c: 35}
] sort_by排序同上join( , [a[0].b1, a[1].b1, a[2].b1]) 詹姆斯 雅各布 杰登 join字符串拼接{ a: [ foo, foobar, barfoo, bar, barbaz, barfoobaz ] }a[?contains(, foo) true] [foofoobarbarfoobarfoobaz] 字符匹配 contains与匿名 一些常用嵌套语句
嵌套调用
源jmespath结果备注{a: { c: [ {d: [0, [1, 2]]} ] }}a.c[0].d[1][0]1{ a: [ { b1: James, b2: d, c: 30 }, { b1: Jacob, b2: e, c: 35 }, { b1: Jayden, b2: f, c: 25 } ] }a[*].b1 / a[].b1 / a[:].b1 [James,Jacob,Jayden
] 同上a[*].[b1, b2] [ [James, d], [Jacob, e], [Jayden, f] ] 同上a[*].[*] [ [[James, d, 30]], [[Jacob, e, 35]], [[Jayden, f, 25]] ] 同上a[*].{b1: b1, b2: 1} [{b1: James,b2: 1},{b1: Jacob,b2: 1},{b1: Jayden,b2: 1}
] 同上a[::2].{b1: b1, b2: 1} [{b1: James,b2: 1},{b1: Jayden,b2: 1}
] { a: { a1: { b1: James, b2: d, c: 30 }, a2: { b1: Jacob, b2: e, c: 35 }, a3: { b1: Jayden, b2: f, c: 25 } } }a.*.c [30,35,25
] 同上a.*.* [ [James, d, 30], [Jacob, e, 35], [Jayden, f, 25] ]