如何从下面的JSON数据中 Select /过滤所有连接.usesEncryption使用JQ为真

{
  "connections": {
    "connection": [
      {
        "field": [
          {
            "id": "url",
            "encryptedValueSet": false,
            "usesEncryption": false,
            "componentOverride": false,
            "useDefault": false
          },
          {
            "id": "user",
            "encryptedValueSet": false,
            "usesEncryption": false,
            "componentOverride": false,
            "useDefault": false
          },
          {
            "id": "password",
            "encryptedValueSet": true,
            "usesEncryption": true,
            "componentOverride": false,
            "useDefault": false
          }
        ],
        "id": "3ea89002-51f5-4369-9539-63c3bd406a64"
      }
    ]
  }
}

我试着跟随,但没能如愿

jq '. | select(.connections.connection[].field[] | .usesEncryption==true)' EnvironmentExtensions.json
jq '. | .connections.connection[].field[] | select(.usesEncryption==true)' EnvironmentExtensions.json

推荐答案

要修改内部数组,可以使用(需要JQ 1.7):

.connections.connection[].field[] |= select(.usesEncryption)

或(与JQ 1.6配合使用)

.connections.connection[].field |= map(select(.usesEncryption))

或者,重建两个数组(JQ 1.6):

.connections.connection |= map(.field |= map(select(.usesEncryption)))

Json相关问答推荐

从Json响应中为需要每个值的Post请求提取多个值

Jolt将键和值转换为单独的数组集

解析SQL中的嵌套JSON

如何在VB6中将字符串转换或解码为可读格式?

如何将属性拆分为嵌套的JSON内容?

JOLT 转换仅过滤一个字段

使用 jq 和脚本 bash 映射两个 json

如何将复杂的 JSON 反序列化为 Rust 类型?

使用 Jolt 变换将平面 json 转换为具有多个数组的嵌套 Json

Flutter:在本地文件 json 中搜索特殊的阿拉伯字符

当值包含ansible中的字符串时解析json值

在 Perl Mojolicious 中呈现 JSON 时防止转义字符

Play Framework:如何序列化/反序列化与 JSON 的枚举

如何使用 Newtonsoft.Json 反序列化 JSON 数组

Rails:format.js 或 format.json,或两者兼而有之?

Spring MVC控制器中的JSON参数

如何判断 JSON 响应元素是否为数组?

在android中使用GSON解析带有动态key和value的JSON

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

C++:使用 nlohmann json 从文件中读取 json 对象