【问题标题】:Adding a new root level property to JSON object using jq使用 jq 向 JSON 对象添加新的根级别属性
【发布时间】:2021-07-17 07:45:48
【问题描述】:

我有一个大型 JSON 文件(大约 7K 行),其中包含深度嵌套的项目,其中缺少我需要添加的必需属性 collection。 当前 JSON 对象:

{
  "item": [
        {
          "id": "123",
          "name": "Customer",
          "item": [
              {
                 "id": "456",
                 "name": "Retrieve a customer"
....

使用 bash 脚本,我需要像这样添加一个顶级属性 "collection",其中仍然包含相同的嵌套项。这是我想要的结果:

{
  "collection": {
    "item": [
         {
           "id": "123",
           "name": "Customer",
           "item": [
               {
                "id": "456",
                "name": "Retrieve a customer",
....       

在 JSON 对象的末尾,我还需要在文件末尾为我新添加的 collection: 键匹配的结束 } 大括号。有没有办法用 JQ 做到这一点?

【问题讨论】:

    标签: json jq


    【解决方案1】:
    jq '{"collection": .}' <in.json >out.json
    

    【讨论】:

    • 我猜你把它做成了社区维基,因为你不知道还能说什么,但真的还有什么要说的吗?
    • 更多,因为我很难相信这不是重复的,但不希望运行现有实例的工作。回答 CW 会造成分歧——我没有通过回答我认为可能是重复的问题来赢得声誉,这使得回答而不是近距离的决定看起来不那么自私(尽管“太懒惰”可以说是 自私自利)。
    猜你喜欢
    • 2010-10-18
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多