在Jolt变换中展平JSON数组

时间:2019-10-11 12:59:26

标签: jolt

输入:

T(n) = n^log2(3 * n)

规格:

[
  {
    "name": "Foo",
    "ratings": [
      {
        "value": 2
      },
      {
        "value": 4
      }
    ]
  }
]

输出:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "ratings": {
          "@": ""
        }
      }
    }
  }
]

我想要实现的目标:

[ {
  "value" : 2
}, {
  "value" : 4
} ]

有什么想法如何修改我的震动规格以实现该输出?

1 个答案:

答案 0 :(得分:0)

[
  {
    "operation": "shift",
    "spec": {
      "*": { // top level array
        "ratings": {
          "*": { // ratings array
            // push name down, but maintain the 
            //  same doubly nested array structure
            "@(2,name)": "[&3].[&1].name",
            // copy everything inside a ratings document 
            "*": "[&3].[&1].&"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": { // top level array
        // 2nd level array
        "*": "[]"
      }
    }
  }
]