我有这个JSON输入:

{
  "entityType": "job",
  "id": 908815,
  "properties": {
    "AvatureID": 908815,
    "TemplateName": [
      "jicofo package",
      "jitsi meet fork",
      "jitsi-videobridge2 package"
    ],
    "CaseType": [
      "Internal project",
      "Internal project",
      "Internal project"
    ],
    "ProjectType": [
      "Cloud Services",
      "Development",
      "Cloud Services"
    ],
    "Team": [
      "Cloud Operations",
      "Video",
      "Cloud Operations"
    ],
    "Category": [
      "Routine Ops",
      "Platform enhancement",
      "Routine Ops"
    ],
    "WorkflowStepID": [
      "579",
      "531",
      "579"
    ]
  }
}

我需要使用Jolt(v.0.1.1)转换获得以下输出:

[
  {
    "ParentCaseID": 908815,
    "TemplateName": "jicofo package",
    "CaseType": "Internal project",
    "ProjectType": "Cloud Services",
    "Team": "Cloud Operations",
    "Category": "Routine Ops",
    "WorkflowStepID": "579"
  },
  {
    "ParentCaseID": 908815,
    "TemplateName": "jitsi meet fork",
    "CaseType": "Internal project",
    "ProjectType": "Development",
    "Team": "Video",
    "Category": "Platform enhancement",
    "WorkflowStepID": "531"
  },
  {
    "ParentCaseID": 908815,
    "TemplateName": "jitsi-videobridge2 package",
    "CaseType": "Internal project",
    "ProjectType": "Cloud Services",
    "Team": "Cloud Operations",
    "Category": "Routine Ops",
    "WorkflowStepID": "579"
  }
]

但当我试图添加ParentCaseID个时,我遇到了一些问题.

我目前正在使用这个抖动:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "TemplateName": {
          "*": {
            "@": "[&1].TemplateName"
          }
        },
        "CaseType": {
          "*": {
            "@": "[&1].CaseType"
          }
        },
        "ProjectType": {
          "*": {
            "@": "[&1].ProjectType"
          }
        },
        "Team": {
          "*": {
            "@": "[&1].Team"
          }
        },
        "Category": {
          "*": {
            "@": "[&1].Category"
          }
        },
        "WorkflowStepID": {
          "*": {
            "@": "[&1].WorkflowStepID"
          }
        }
      }
    }
  }
]

它的输出是下一个:

[
  {
    "TemplateName": "jicofo package",
    "CaseType": "Internal project",
    "ProjectType": "Cloud Services",
    "Team": "Cloud Operations",
    "Category": "Routine Ops",
    "WorkflowStepID": "579"
  },
  {
    "TemplateName": "jitsi meet fork",
    "CaseType": "Internal project",
    "ProjectType": "Development",
    "Team": "Video",
    "Category": "Platform enhancement",
    "WorkflowStepID": "531"
  },
  {
    "TemplateName": "jitsi-videobridge2 package",
    "CaseType": "Internal project",
    "ProjectType": "Cloud Services",
    "Team": "Cloud Operations",
    "Category": "Routine Ops",
    "WorkflowStepID": "579"
  }
]

有什么可以修改的地方吗?这样我就可以达到我想要的效果了.

提前谢谢您!

推荐答案

添加ParentCaseID时会出现什么问题?我try 了以下方法,并取得了成效:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "TemplateName": {
          "*": {
            "@(3,id)": "[&1].ParentCaseID",
            "@": "[&1].TemplateName"
          }
        },
        "CaseType": {
          "*": {
            "@": "[&1].CaseType"
          }
        },
        "ProjectType": {
          "*": {
            "@": "[&1].ProjectType"
          }
        },
        "Team": {
          "*": {
            "@": "[&1].Team"
          }
        },
        "Category": {
          "*": {
            "@": "[&1].Category"
          }
        },
        "WorkflowStepID": {
          "*": {
            "@": "[&1].WorkflowStepID"
          }
        }
      }
    }
  }
]

希望这对你有用.

Json相关问答推荐

使用相同的密钥值来命名Json并使用Jolt重命名密钥

如何在对象投影(*)上应用滤镜投影([?port==`eth1`])?

使用Kotlin限制序列化类属性的允许整数值

从包含 JSON 对象序列的文件中获取第一个 JSON 对象

具有 (RegEx) 模式的 json-schema 中的枚举

使用 jq 和 awk 拆分大型 JSON 文件

如果 jq 数组中的字符串是对象或字符串,则获取值

N1QL 搜索对象内的某些对象

应该使用什么标头将 GZIP 压缩 JSON 从 Android 客户端发送到服务器?

为什么我不能在 C# 中引用 System.Runtime.Serialization.Json

如何获取json格式的KendoGrid显示数据?

如何自动修复无效的 JSON 字符串?

如何将有向无环图 (DAG) 存储为 JSON?

ASP.NET MVC 读取原始 JSON 发布数据

Sequelize - 如何仅返回数据库结果的 JSON 对象?

JSON JQ 如果没有 else

获取一个数字的 PHP 对象属性

为什么 JavaScript 的 eval 需要括号来判断 JSON 数据?

按键值过滤 JSON

如何在 React js 中解析本地 JSON 文件?