我想将"id"字段移动到下面文档的"User_Roles"字段中的每个元素. 我使用了下面的规范,但它没有像我预期的那样工作,我不确定我可能在Jolt规范中的哪里犯了错误.

Input:

{
      "id": "657a9dc588b19",
      "user_roles": [
        {
          "role": 2,
          "status": 1,
          "is_owner": true,
        },
        {
          "role": 5,
          "status": 1,
          "is_owner": true,
        },
        {
          "role": 3,
          "status": 1,
          "is_owner": true,
        }
      ]
    }

Spec:

[
  {
    "operation": "shift",
    "spec": {
      "user_roles": {
        "*": {
          "_id": "user_roles[&0]._id",
          "*": "user_roles[&1].&"
        }
      }
    }
  }
]

Expect result:

{
  "user_roles": [
    {
      "id": "657a9dc588b19",
      "role": 2,
      "status": 1,
      "is_owner": true,
    },
    {
      "id": "657a9dc588b19",
      "role": 5,
      "status": 1,
      "is_owner": true,
    },
    {
      "id": "657a9dc588b19",
      "role": 3,
      "status": 1,
      "is_owner": true
    }
  ]
}

推荐答案

还有一种方法可以实现预期的输出.

[
  {
    "operation": "shift",
    "spec": {
      "user_roles": {
        "*": {
          "@2,id": "&2[&1].id",
          "*": "&2[&1].&"
        }
      }
    }
  }
]

Json相关问答推荐

如何将加权边列表导出到JSON树?

Jolt变换将字段移动到数组的每个元素中

对一些JSON模式验证的混淆

导致此 Kotlin Retrofit2 错误的可能原因有哪些?

如何在 jq 中按 IP 地址排序?

如何修复通过在 tsconfig.json 文件中添加allowImportingTsExtensions引发的错误 TS5023?

Powershell - 如何从 JSON 中删除/过滤元素但保留其余部分?

如何为包含一些固定值并可能具有其他附加值的数组字符串创建数组 json 架构

当值包含ansible中的字符串时解析json值

如何在 Node.js 中解析包含NaN的 JSON 字符串

未捕获的类型错误:无法读取 null 的属性props

IE中Json响应下载(7~10)

如何在 django rest 框架中定义列表字段?

将 JSON 对象推送到 localStorage 中的数组

在 Jersey 服务中使用 JSON 对象

在android中读取Json数组

从 JSON 创建 Hashtable

强制 JSON.NET 在序列化 DateTime 时包含毫秒(即使 ms 组件为零)

处理 HTTP 请求正文中的可选 JSON 字段

如何使用 Gson 将 JSONArray 转换为 List?