使用 Jolt 转换列表列表

Transformation List of Lists with Jolt

我有一个 JSON 这样的:

{
  "item1": [
    "serv1",
    "serv2",
    "serv3"
  ],
  "item2": [
    {
      "obj": [
        "matriz1",
        "matriz2",
        "matriz3"
      ]
    },
    {
      "obj": [
        "matriz4",
        "matriz5",
        "matriz6"
      ]
    }
  ]
}

我需要获得这个输出:

{
  "item1": [
    "serv1",
    "serv2",
    "serv3"
  ],
  "item2": [
    [
      "matriz1",
      "matriz2",
      "matriz3"
    ],
    [
      "matriz4",
      "matriz5",
      "matriz6"
    ]
  ]
}

我正在尝试这个 JOLT 规范:

[
  {
    "operation": "shift",
    "spec": {
      "item1": "item1",
      "item2": {
        "*": {
          "obj": "item2"
        }
      }
    }
  }
]

但是输出包含第一个数组的 3 个元素,然后是我想要的第二个数组。

{
  "item1": [
    "serv1",
    "serv2",
    "serv3"
  ],
  "item2": [
    "matriz1",
    "matriz2",
    "matriz3",
    [
      "matriz4",
      "matriz5",
      "matriz6"
    ]
  ]
}

获得正确输出的正确 JOLT 规格是什么?

您可以使用移位转换规范,例如

[
  {
    "operation": "shift",
    "spec": {
      "item1": "&",
      "item2": {
        "*": {
          "obj": "&2[&1]"
        }
      }
    }
  }
]

无需重复键名,而是通过使用 & 符号进行替换。

  • & 替换当前键名
  • &2 替换了 "item2",因为需要上升 2 级才能获取名称
  • &2[&1] 表示嵌套在键名 中的 obj 列表的元素"item2"

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