繁体   English   中英

使用 jq 遍历 json 以删除空字段

[英]Traversing a json to remove nulls fields using jq

我有一个 JSON 如下,但需要一种方法在将其放入 elasticsearch 之前删除空值。 寻找一个简单的 jq 命令来删除可以合并到我的 bash 脚本中的空值,除非在 elasticsearch 中有这样做的方法

{
    "master_no": {
      "master_no": 100000000,
      "barcode": "E00000000",
      "external_key": null,
      "umid": null
    },
    "cust_id": {
      "other_cust_id": null,
      "cust_reference": null,
      "external_key": null,
      "list_id": null,
      "cust_id": null
    },
    "customer_name": null,
    "master_desc": "test Custom Patch - test",
    "barcode": "E00000000",
    "container_master_no": null,
    "master_status": "I",
    "length": "0:00",
    "format_no": {
      "format_desc": null,
      "external_key": null,
      "format_no": null
    },
    "lib_master_audio": [
      {
        "master_no": 10000000,
        "audio_channel_no": {
          "audio_channel_no": 10,
          "audio_channel": "1",
          "external_key": null
        }
      },
      {
        "master_no": 100000000,
        "audio_channel_no": {
          "audio_channel_no": 10,
          "audio_channel": "2",
          "external_key": null
        }
      }
    ]
}

谢谢

这个关于从 JSON 中删除 null 键和值的 GitHub问题可以帮助您,简而言之,一些命令可能会对您有所帮助,在链接中提到:

del(.[][] | nulls)

请注意有几种方法可以做到这一点,请检查哪一种适合您。

正如@oguz 在评论中指出的那样,请使用与最新版本一起使用的https://github.com/stedolan/jq/issues/104#issuecomment-289637207

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM