首页 > 解决方案 > Jolt 变换:从对象中提取嵌套数组

问题描述

我有如下 JSON 输入

{
  "data": [
    {
      "items": [
        {
          "item": "R11",
          "code": "8611A"
        },
        {
          "item": "R2",
          "code": "8611B"
        }
      ]
    }
  ]
}

我需要提取项目数组如下

[
  {
    "item": "R11",
    "code": "8611A"
  },
  {
    "item": "R2",
    "code": "8611B"
  }
]

请复制并粘贴上面的 INPUT 和 OUTPUT https://jolt-demo.appspot.com/#inception 我已经测试 [{"operation":"shift","spec":{"data":{"*":""}}}] 但它返回{"items" : [ {...}, {...} ] }

标签: javajsontransformjolt

解决方案


您可以使用如下移位转换

[
  {
    "operation": "shift",
    "spec": {
      "*": { //might be replaced with "data"
        "*": {
          "*": //might be replaced with "items"
          { 
            "@": "" 
          }
        }
      }
    }
  }
]

其中星号通配符分别表示数组数据、其索引和数组。" @":""项目表示为没有键的对象数组。

在此处输入图像描述


推荐阅读