运行 未命名 JSON 对象上的 forEach 循环的本机方法
Native way to run a forEach loop on an unnamed JSON object
示例JSON
[
{
"id": 12,
"clientName": "super-client"
},
{
"id": 15,
"clientName": "helloClient"
}
]
我想使用 JMESPath 检查每个 clientName 字段是否不包含文本 super-
然后显示结果
我正在使用 Google 表格的 API 连接器工具来解析我通过电话收到的 JSON。我坚持这个。
JMESPath 站点上的几乎所有参考示例都有一个命名对象或数组。这个 JSON 我没有任何命名对象。
我想做类似的事情
result = []
for entry in data:
if not entry['clientName'].find("super-"):
result.append(entry)
return result
尝试
function test() {
var json = [
{
"id": 12,
"clientName": "super-client",
},
{
"id": 15,
"clientName": "helloClient",
}
]
var result = json.filter(e => e.clientName.includes('super'))
console.log(result)
}
var json = [
{
"id": 12,
"clientName": "super-client",
},
{
"id": 15,
"clientName": "helloClient",
}
]
var result = json.filter(e => e.clientName.includes('super'))
console.log(result)
在 JMESPath 中,它被称为 filter projection 并且可以立即应用于数组,而无需命名。
在过滤投影之上,您需要的是 contains
function and the not expression !
。
所有这些一起给你这个查询:
[?!contains(clientName, 'super-')]
在您的 JSON 示例中,结果是:
[
{
"id": 15,
"clientName": "helloClient"
}
]
示例JSON
[
{
"id": 12,
"clientName": "super-client"
},
{
"id": 15,
"clientName": "helloClient"
}
]
我想使用 JMESPath 检查每个 clientName 字段是否不包含文本 super-
然后显示结果
我正在使用 Google 表格的 API 连接器工具来解析我通过电话收到的 JSON。我坚持这个。
JMESPath 站点上的几乎所有参考示例都有一个命名对象或数组。这个 JSON 我没有任何命名对象。
我想做类似的事情
result = []
for entry in data:
if not entry['clientName'].find("super-"):
result.append(entry)
return result
尝试
function test() {
var json = [
{
"id": 12,
"clientName": "super-client",
},
{
"id": 15,
"clientName": "helloClient",
}
]
var result = json.filter(e => e.clientName.includes('super'))
console.log(result)
}
var json = [
{
"id": 12,
"clientName": "super-client",
},
{
"id": 15,
"clientName": "helloClient",
}
]
var result = json.filter(e => e.clientName.includes('super'))
console.log(result)
在 JMESPath 中,它被称为 filter projection 并且可以立即应用于数组,而无需命名。
在过滤投影之上,您需要的是 contains
function and the not expression !
。
所有这些一起给你这个查询:
[?!contains(clientName, 'super-')]
在您的 JSON 示例中,结果是:
[
{
"id": 15,
"clientName": "helloClient"
}
]