You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Jolt Shift Transformation提取多层JSON的所有foo数组?

Jolt转换:提取所有层级的foo数组到统一数组

需求:从结构层级未知的JSON数据中,提取所有层级下的foo数组,生成一个包含这些foo数组对象的数组,每个数组元素为{"foo": [原foo数组内容]}的格式。

输入JSON

{
  "id": 1,
  "item": [
    {
      "id": "1_1",
      "item": [
        {
          "id": "1_1_2",
          "foo": [
            {
              "nn": "cc",
              "vvv": "2022-08-30T06:44:24.943Z",
              "mmm": "oo"
            },
            {
              "nn": "ss",
              "vvv": "rr",
              "mmm": "oo"
            },
            {
              "nn": "ii",
              "vvv": "rr",
              "mmm": "oo"
            },
            {
              "nn": "uu",
              "vvv": "kk",
              "mmm": "oo"
            },
            {
              "nn": "pp",
              "vvv": "aaa",
              "mmm": "oo"
            },
            {
              "nn": "bb",
              "vvv": "tt",
              "mmm": "oo"
            },
            {
              "nn": "ff",
              "vvv": "tt",
              "mmm": "oo"
            },
            {
              "nn": "ff",
              "vvv": "tt",
              "mmm": "oo"
            },
            {
              "nn": "pp",
              "vvv": "yy",
              "mmm": "oo"
            }
          ]
        }
      ],
      "foo": [
        {
          "nn": "cc",
          "vvv": "ww",
          "mmm": "oo"
        },
        {
          "nn": "ss",
          "vvv": "rr",
          "mmm": "oo"
        },
        {
          "nn": "ii",
          "vvv": "rr",
          "mmm": "oo"
        },
        {
          "nn": "uu",
          "vvv": "kk",
          "mmm": "oo"
        },
        {
          "nn": "pp",
          "vvv": "aaa",
          "mmm": "oo"
        },
        {
          "nn": "bb",
          "vvv": "tt",
          "mmm": "oo"
        },
        {
          "nn": "d",
          "vvv": "tt",
          "mmm": "oo"
        },
        {
          "nn": "pp",
          "vvv": "yy",
          "mmm": "oo"
        }
      ]
    },
    {
      "id": "1_2",
      "item": [
        {
          "id": "1_2_1",
          "foo": [
            {
              "nn": "cc",
              "vvv": "ww",
              "mmm": "oo"
            },
            {
              "nn": "ss",
              "vvv": "rr",
              "mmm": "oo"
            },
            {
              "nn": "ii",
              "vvv": "rr",
              "mmm": "oo"
            },
            {
              "nn": "uu",
              "vvv": "kk",
              "mmm": "oo"
            },
            {
              "nn": "pp",
              "vvv": "aaa",
              "mmm": "oo"
            },
            {
              "nn": "bb",
              "vvv": "tt",
              "mmm": "oo"
            },
            {
              "nn": "bb_ee4d6bf4-1081-468a-b7b1-5445333dfab2",
              "vvv": "tt",
              "mmm": "oo"
            },
            {
              "nn": "pp",
              "vvv": "yy",
              "mmm": "oo"
            }
          ]
        }
      ],
      "foo": [
        {
          "nn": "cc",
          "vvv": "ww",
          "mmm": "oo"
        },
        {
          "nn": "ss",
          "vvv": "rr",
          "mmm": "oo"
        },
        {
          "nn": "ii",
          "vvv": "rr",
          "mmm": "oo"
        },
        {
          "nn": "uu",
          "vvv": "kk",
          "mmm": "oo"
        },
        {
          "nn": "pp",
          "vvv": "aaa",
          "mmm": "oo"
        },
        {
          "nn": "bb",
          "vvv": "tt",
          "mmm": "oo"
        },
        {
          "nn": "d",
          "vvv": "tt",
          "mmm": "oo"
        },
        {
          "nn": "pp",
          "vvv": "yy",
          "mmm": "oo"
        }
      ]
    }
  ]
}

期望输出JSON

[
  {
    "foo": [
      {
        "nn": "cc",
        "vvv": "ww",
        "mmm": "oo"
      },
      {
        "nn": "ss",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "ii",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "uu",
        "vvv": "kk",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "aaa",
        "mmm": "oo"
      },
      {
        "nn": "bb",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "d",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "yy",
        "mmm": "oo"
      }
    ]
  },
  {
    "foo": [
      {
        "nn": "cc",
        "vvv": "2022-08-30T06:44:24.943Z",
        "mmm": "oo"
      },
      {
        "nn": "ss",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "ii",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "uu",
        "vvv": "kk",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "aaa",
        "mmm": "oo"
      },
      {
        "nn": "bb",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "ff",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "ff",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "yy",
        "mmm": "oo"
      }
    ]
  },
  {
    "foo": [
      {
        "nn": "cc",
        "vvv": "ww",
        "mmm": "oo"
      },
      {
        "nn": "ss",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "ii",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "uu",
        "vvv": "kk",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "aaa",
        "mmm": "oo"
      },
      {
        "nn": "bb",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "d",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "yy",
        "mmm": "oo"
      }
    ]
  },
  {
    "foo": [
      {
        "nn": "cc",
        "vvv": "ww",
        "mmm": "oo"
      },
      {
        "nn": "ss",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "ii",
        "vvv": "rr",
        "mmm": "oo"
      },
      {
        "nn": "uu",
        "vvv": "kk",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "aaa",
        "mmm": "oo"
      },
      {
        "nn": "bb",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "bb_ee4d6bf4-1081-468a-b7b1-5445333dfab2",
        "vvv": "tt",
        "mmm": "oo"
      },
      {
        "nn": "pp",
        "vvv": "yy",
        "mmm": "oo"
      }
    ]
  }
]

Jolt转换配置

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

配置说明

  • **:通配符,匹配JSON结构中任意深度的所有键路径,确保遍历到每一层级的节点
  • "foo": { "@": "[].foo" }:当匹配到名为foo的键时,将其对应的值(即整个foo数组)映射到根数组的新元素中,[]会自动为每个匹配到的foo创建独立的数组元素,每个元素保持{"foo": [...]}的格式

内容的提问来源于stack exchange,提问作者Michal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:01:27