【发布时间】:2021-05-07 11:52:13
【问题描述】:
我有 2 个 json 文件,想将它们合并到一个文件中。 这里是文件内容:
a.json:
{
"config":
{
"config1":
{
"config11":
{
"apple":"apple",
"orange":"orange",
"lemon":[
"lemon1",
"lemon2",
"lemon3"
],
"pear":"pear"
}
},
"config2":
{
"config21":"hello",
"config22":"goodbye"
}
}
}
b.json:
{
"config":
{
"config1":
{
"config11":
{
"apple":null,
"orange":null,
"lemon":[
"lemon4",
"lemon5",
"lemon6"
],
"pear":null
}
},
"config2":
{
"config21":"hey",
"config22":null
}
}
}
我想将b.json的非空部分合并到a.json中
预期结果:
{
"config":
{
"config1":
{
"config11":
{
"apple":"apple",
"orange":"orange",
"lemon":[
"lemon4",
"lemon5",
"lemon6"
],
"pear":"pear"
}
},
"config2":
{
"config21":"hey",
"config22":"goodbye"
}
}
}
我试试这个命令:
jq -s '.[0] + .[1]' a.json b.json
但输出不是我想要的
我读了https://stedolan.github.io/jq/manual,但我仍然不知道该怎么做
有什么帮助吗?谢谢。
追加:
aa.json
{
"config": {
"config_again": {
"country": {
"countrylist": [
"CANADA",
"MEXICO",
"USA"
]
},
"language": {
"languageorderlist": [
"en_US",
"hu_HU",
"in_ID",
"it_IT",
"iw_IL",
"zh_CN"
]
},
"video": {
"mp4": "1",
"mkv": "1"
},
"Audio": {
"audio_audio": "0x111111"
}
}
}
}
bb.json:
{
"config": {
"config_again": {
"country": {
"countrylist": [
"USA"
]
},
"language": {
"languageorderlist": [
"en_US",
"de_DE"
]
},
"video": {
"mp4": null,
"mkv": null
},
"Audio": {
"audio_audio": "0x666666"
}
}
}
}
【问题讨论】: