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

编写嵌套数组的Jolt转换规范,修复AudienceRangePrecision映射错误

问题

我有一个含嵌套数组的JSON,需要转换为指定格式但未成功。输入JSON的audiencerange数组中,每个元素包含AudienceRangePrecision数组(元素为"03"和"04");转换规则为03映射为"From",04映射为"To"。期望输出是onix_audience_range下的values数组,每个元素的AudienceRangePrecision值为"From,To",但当前使用的Jolt Shift操作规范得到的结果是两个元素分别为"From,From"和"To,To"。

输入JSON:

{"audiencerange": [{"AudienceRangePrecision": ["03","04"]},{"AudienceRangePrecision": ["03","04"]}]}

期望输出:

{"onix_audience_range": {"values": [{"AudienceRangePrecision": "From,To"},{"AudienceRangePrecision": "From,To"}]}}

当前错误输出:

{"onix_audience_range": {"values": [{"AudienceRangePrecision": "From,From"},{"AudienceRangePrecision": "To,To"}]}}

使用的部分Jolt规范:

{"operation": "shift","spec": {"AudienceRangePrecision": {"*": {"1|01": {"#Exact": "onix_audience_range.values[&2].AudienceRangePrecision"},"3|03": {"#From": "onix_audience_range.values[&2].AudienceRangePrecision"},"4|04": {"#To": "onix_audience_range.values[&2].AudienceRangePrecision"}}}}}
解决方案

原规范的问题在于索引引用错误:&2指向的是AudienceRangePrecision数组的内部索引(0和1),导致"03"和"04"被分别映射到values数组的不同元素中,而非同一元素内拼接。

需要分两步实现正确转换:先将同一audiencerange元素下的映射值归集到同一位置,再拼接成字符串。完整Jolt规范如下:

[
  // 第一步:将每个audiencerange元素的映射值归集到对应values元素的临时数组
  {
    "operation": "shift",
    "spec": {
      "audiencerange": {
        "*": {
          "AudienceRangePrecision": {
            "03": {"#From": "onix_audience_range.values[&3].AudienceRangePrecision[]"},
            "04": {"#To": "onix_audience_range.values[&3].AudienceRangePrecision[]"}
          }
        }
      }
    }
  },
  // 第二步:将临时数组拼接为逗号分隔的字符串
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "onix_audience_range": {
        "values": {
          "*": {
            "AudienceRangePrecision": "=join(',',@(1,AudienceRangePrecision))"
          }
        }
      }
    }
  }
]

关键说明:

  1. Shift阶段:用&3引用audiencerange数组的索引,确保同一个audiencerange元素下的"03"和"04"映射到values数组的对应元素中,形成["From", "To"]临时数组。
  2. Modify阶段:通过join函数将临时数组拼接为"From,To"字符串,覆盖原数组值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:24:55