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

使用JOLT将嵌套数组对象结构转换为单层对象数组

JOLT转换数组嵌套结构为纯对象数组解决方案

我们需要将JSON中数组嵌套数组的混合结构,通过JOLT转换为仅包含对象的数组结构,具体输入输出示例如下:

输入JSON

{
  "type": "configuration/entityTypes/Account",
  "attributes": {
    "Address": [
      {
        "value": {
          "AddressLine1": [
            {
              "value": "3169 N 5TH ST"
            },
            [
              {
                "value": "3169 N 5TH STREET"
              }
            ]
          ],
          "StateProvince": [
            {
              "value": "PA"
            },
            [
              {
                "value": "PA"
              }
            ]
          ]
        }
      }
    ]
  }
}

期望输出JSON

{
  "type": "configuration/entityTypes/Account",
  "attributes": {
    "Address": [
      {
        "value": {
          "AddressLine1": [
            {
              "value": "3169 N 5TH ST"
            },
            {
              "value": "3169 N 5TH STREET"
            }
          ],
          "StateProvince": [
            {
              "value": "PA"
            },
            {
              "value": "PA"
            }
          ]
        }
      }
    ]
  }
}

可行JOLT转换规范

[
  {
    "operation": "shift",
    "spec": {
      "type": "type",
      "attributes": {
        "Address": {
          "*": {
            "value": {
              "*": {
                "*": {
                  "@(0,value)": "attributes.Address[&3].value.&2[&1]",
                  "@(0,[0].value)": "attributes.Address[&3].value.&2[&1]"
                }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "cardinality",
    "spec": {
      "attributes": {
        "Address": {
          "*": {
            "value": {
              "*": {
                "*": "ONE"
              }
            }
          }
        }
      }
    }
  }
]

转换逻辑说明

  1. Shift操作:
    • 遍历attributes.Address[].value下的所有子字段(如AddressLine1、StateProvince),处理每个数组元素
    • 若元素是普通对象,直接提取其内容;若元素是嵌套数组,则提取数组内的第一个对象
    • 通过&3、&2、&1占位符维持原层级结构,确保数据被放到正确的位置
  2. Cardinality操作:
    • 由于Shift操作可能会对同一数组位置生成重复值,使用ONE规则确保每个索引仅保留一个有效对象,去除重复项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:34:59