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

如何通过Jolt实现placement数组展开与去数组化转换?

Jolt配置方案:解决两类JSON格式转换需求

示例源JSON

{
  "id": ["1458720", "3561353", "14353163"],
  "placement": ["top", "middle"],
  "emptyPlacement": []
}

Jolt配置代码

[
  // 1. 将字段数组转换为对象数组
  {
    "operation": "shift",
    "spec": {
      "id": {
        "*": {
          "@": "[#2].id"
        }
      },
      "placement": "&",
      "emptyPlacement": "&"
    }
  },
  // 2. 拼接placement数组为字符串,空数组设为null
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "placement": "=join(',',@(1,&))",
      "emptyPlacement": ["=isNull(@(1,&))", null]
    }
  },
  // 可选:移除值为null的字段(按需启用)
  {
    "operation": "remove",
    "spec": {
      "emptyPlacement": ""
    }
  }
]

配置说明

  • Shift阶段:遍历id数组的每个元素,将单个值映射为独立的{"id": "xxx"}对象,最终组合成对象数组;其他数组字段直接保留结构,留待后续处理。
  • Modify阶段:
    • 用join函数将placement数组的元素以逗号为分隔符拼接成字符串;
    • 用isNull判断空数组,将其值设为null。
  • 可选Remove阶段:如果需求是直接移除空数组对应的字段而非设为null,启用此操作即可删除值为null的字段。

预期输出(启用Remove阶段)

{
  "id": [
    {"id": "1458720"},
    {"id": "3561353"},
    {"id": "14353163"}
  ],
  "placement": "top,middle"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:03:09