我有一个这样的数据 struct

{
  "lan": {
    "main_router": {
      "ip": "192.168.22.1",
      "port": "eth1"
    }
  },
  "guest": {
    "main_router": {
      "ip": "192.168.44.1",
      "port": "eth1.44"
    }
  },
  "iot": {
    "main_router": {
      "ip": "192.168.66.1",
      "port": "eth1.66"
    }
  }
}

我想要获得所有main_router个条目,其中port的值是eth1.

我在jMespath.org教程上try 了以下两个查询:

*.main_router[?port==`eth1`]
*[?main_router.port==`eth1`]

但无论是这两个还是我try 的许多变化都没有产生任何结果.

推荐答案

这是因为*object projection,如果你想在另一个投影的结果上应用投影-而不是投影本身-你需要在pipe expression的帮助下停止第一个投影.

你可以将其应用于你的任何一次审判:

*.main_router | [?port == `eth1`]

将为您提供:

[
  {
    "ip": "192.168.22.1",
    "port": "eth1"
  }
]

* | [?main_router.port == `eth1`]

将为您提供:

[
  {
    "main_router": {
      "ip": "192.168.22.1",
      "port": "eth1"
    }
  }
]

Json相关问答推荐

Jolt Transformation—如果子对象为空,则将父对象更新为空

在深度嵌套数组中使用布尔属性的jq-select

jq如何合并两个json对象

如何将一个对象添加到多个对象中 JOLT

jq 中的整个单词匹配

从 Inno Setup 中的 JSON 文件的每个对象中读取特定字符串

如何从字符串中创建一个逗号分隔的列表,由 API 中的 JSON 对象内的编号空格分隔?

Scala - 在构建 Json 时无法删除 Key -> value "{}" 大括号的双引号

通过sql查询读取嵌套Json

单元测试球衣 Restful Services

Android 上的 JSON - 序列化

Java的JSON字符串整洁/格式化程序

Android JSON 库的性能和可用性比较

在 Postgres 中向 JSON 对象添加元素

使用 API 搜索维基百科

如何创建 JSON 对象 Node.js

有什么方法可以在 elasticsearch 服务器中导入 json 文件(包含 100 个文档).?

如何使用 Javascript 将数据写入 JSON 文件

按键值过滤 JSON

play 2 JSON 格式中缺少的属性的默认值