繁体   English   中英

使用 bash/jq 将 json 对象添加到另一个 json 对象中

[英]Add json object into another json object using bash/jq

我正在尝试创建一个新文件,将 country1.json 中定义的对象添加到 world.json 中。 本质上:

世界.json

{
    "class": "world",
    "version": "1.1.0"
}

+

country1.json

{
    "class": "country",
    "country_1": {
        "class": "city",
        "name": "seattle"
    }
}

=

world_country1.json

{
    "class": "world",
    "version": "1.1.0",
    "country1": {
        "class": "country",
        "country_1": {
            "class": "city",
            "name": "seattle"
        }
    }
}

使用 country1.json 文件中对象的文件名。 如果可能的话,我想使用 bash/jq。

谢谢你的帮助,最好的,罗曼

使用input访问第二个文件,并使用>重定向到另一个文件

jq '.country1 = input' world.json country1.json > world_country1.json
{
  "class": "world",
  "version": "1.1.0",
  "country1": {
    "class": "country",
    "country_1": {
      "class": "city",
      "name": "seattle"
    }
  }
}

演示


如果您想使用文件名作为新字段的名称,请使用input_filename并切断最后 5 个字符(删除.json ):

jq '. + (input | {(input_filename[:-5]): .})' world.json country1.json > world_country1.json

暂无
暂无

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

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