使用 Jolt 使用来自键的值时使用硬编码键和值创建 JSON 数组

Create JSON array with hardcoded keys and values while using value from key using Jolt

我有这样一种情况,我试图获取一些平坦的 json 输入并提供一些 API 摄取所需的上下文信息。在下面的示例中,我试图将一些硬编码键添加到数组中。

我搜索了很多,但没有看到有人问过这个具体问题。

JSON 输入

{
  "hostname": "computername",
  "user": "DOMAIN\User",
  "full_name": "lastname firstname",
  "login_name": "DOMAIN\User",
  "user_email": "user@email.com"
}

预期结果:

{
  "entities": [
    {
      "role": "hostname",
      "entities": [
        "computername"
      ]
    },
    {
      "role": "user",
      "entities": [
        "DOMAIN\User"
      ]
    },
    {
      "role": "full_name",
      "entities": [
        "lastname firstname"
      ]
    },
    {
      "role": "login_name",
      "entities": [
        "DOMAIN\User"
      ]
    }
  ],
  "user_email": "user@email.com"
}

如有任何帮助,我们将不胜感激!

您可以使用 "$" 通配符导出键名,并使用 "@" 通配符导出嵌套的各个属性的值在 shift 转换的常见对象表示中,例如

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "$": "&.role",
        "@": "&.entities[]"
      },
      "user_*": "&"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "entities",
      "user_*": "&"
    }
  }
]

站点 http://jolt-demo.appspot.com/ 上的 演示