运行 未命名 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"
  }
]