如何使用Jolt重命名json中数组中的所有元素?

时间:2019-10-23 17:06:49

标签: javascript json jolt

我有来自外部应用程序A的JSON数据,需要将其发送到应用程序B。并且在将数据发送到应用程序B之前,需要重命名json中的所有属性。

例如,传入的json数据结构为-

{
  "Array1": [
    {
      "field1": "foo1",
      "field2": [
        "bar1",
        "bar2"
      ]
    },
    {
      "field1": "foo2",
      "field2": [
        "bar3",
        "bar4"
      ],

      ...

        {
      "field1": "fooN",
      "field2": [
        "barX",
        "barY"
      ] 

    }
  ]
}

每个记录中Array1中元素的数量是可变的。

预期输出为-

{
  "ElementList": [
    {
      "Attr1": "foo1",
      "Attr2": [
        "bar1",
        "bar2"
      ]
    },
    {
      "Attr1": "foo2",
      "Attr2": [
        "bar3",
        "bar4"
      ],

      ...

        {
      "Attr1": "fooN",
      "Attr2": [
        "barX",
        "barY"
      ]  

    }
  ]
}

基本上

  • Array1重命名为ElementList
  • 将Array1中的每个Field1重命名为Attr1
  • 每个Field2 Array1重命名为Attr2

对于简单的重命名,我可以使用shift运算符,但无法为数组指定正确的颠簸转换。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

选择是否适合您:

[
  {
    "operation": "shift",
    "spec": {
      "Array1": "ElementList"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "ElementList": {
        "*": {
          "field1": "ElementList[&1].Attr1",
          "field2": "ElementList[&1].Attr2"
        }
      }
    }
  }
]