我有一个JSON,如下所示,但在将其放入弹性搜索之前,需要一种删除null的方法。正在寻找一个简单的jq命令来删除可以合并到bash脚本中的null,除非在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
}
}
]
}
感谢
这个GitHub关于从JSON中删除null键和值的问题可以帮助你,简而言之,一些命令可能会帮助你,在这个链接中提到:
del(.[][] | nulls)
请注意,有几种方法可以做到这一点,请检查哪一种适合你。
正如@oguz在评论中指出的,请使用https://github.com/stedolan/jq/issues/104#issuecomment-289637207,适用于最新版本。