在 bash 中的 json 数组中动态添加多个键值对
Dynamically add multiple key value pair in a json array in bash
我有下面的 json 数组,我想使用 bash 在 json 数组中附加两个额外的键值对。这需要在我现有的 json 数组文件上动态添加。有人可以分享一些解决此问题的想法吗?
json数组文件:
[
{
"entry": "10.20.15.0/24",
"comment": "test ip1"
},
{
"entry": "10.20.16.0/24",
"comment": "test ip2"
}
]
我想追加额外的键值对,
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
所以最终的 json 数组应该如下所示,
[
{
"entry": "10.20.15.0/24",
"comment": "test ip1"
},
{
"entry": "10.20.16.0/24",
"comment": "test ip2"
},
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
]
要添加的硬编码记录:
jq '
. + [
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
]
' file.json
作为参数提供的要添加的记录:
jq --argjson to_add '
[
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
]
' '. + $to_add' file.json
作为文件提供的要添加的记录:
jq --argfile to_add to_add.json '. + $to_add' file.json
或
jq --slurp add file.json to_add.json
我有下面的 json 数组,我想使用 bash 在 json 数组中附加两个额外的键值对。这需要在我现有的 json 数组文件上动态添加。有人可以分享一些解决此问题的想法吗?
json数组文件:
[
{
"entry": "10.20.15.0/24",
"comment": "test ip1"
},
{
"entry": "10.20.16.0/24",
"comment": "test ip2"
}
]
我想追加额外的键值对,
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
所以最终的 json 数组应该如下所示,
[
{
"entry": "10.20.15.0/24",
"comment": "test ip1"
},
{
"entry": "10.20.16.0/24",
"comment": "test ip2"
},
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
]
要添加的硬编码记录:
jq '
. + [
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
]
' file.json
作为参数提供的要添加的记录:
jq --argjson to_add '
[
{
"entry": "10.20.17.0/24",
"comment": "test ip3"
},
{
"entry": "10.20.18.0/24",
"comment": "test ip4"
}
]
' '. + $to_add' file.json
作为文件提供的要添加的记录:
jq --argfile to_add to_add.json '. + $to_add' file.json
或
jq --slurp add file.json to_add.json