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

Jolt嵌套数组转换问题:options字段未映射及解决方案求助

Jolt嵌套数组转换问题解决

问题原因分析

  • 路径层级引用错误:原Spec中处理system_field_options和custom_field_options时,&5这类层级索引计算错误,导致选项字段无法映射到目标数组的对应位置。
  • 无选项场景未处理:第一条目没有任何选项字段,原Spec未给其options字段设置null默认值。

修正后的Jolt Spec

[
  {
    "operation": "shift",
    "spec": {
      "ticket_fields": {
        "*": {
          "id": "field_list[&1].crm_field_identifier",
          "title": "field_list[&1].name",
          "required": "field_list[&1].required",
          "description": "field_list[&1].description",
          "regexp_for_validation": "field_list[&1].validation_rules.ui_regex",
          "creator_user_id": {
            "-1": {
              "@(2,type)": ["field_list[&3].target_property", "field_list[&3].ui_property"],
              "#false": "field_list[&3].is_custom_field",
              "@(2,system_field_options)": "field_list[&3].options"
            },
            "*": {
              "@(2,id)": "field_list[&3].target_property",
              "@(2,type)": "field_list[&3].ui_property",
              "#true": "field_list[&3].is_custom_field",
              "@(2,custom_field_options)": "field_list[&3].options"
            }
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "field_list": {
        "*": {
          "options": "=isNull(@(1,&), null)"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "field_list": {
        "*": {
          "crm_field_identifier": "field_list[&1].crm_field_identifier",
          "name": "field_list[&1].name",
          "required": "field_list[&1].required",
          "description": "field_list[&1].description",
          "target_property": "field_list[&1].target_property",
          "ui_property": "field_list[&1].ui_property",
          "is_custom_field": "field_list[&1].is_custom_field",
          "validation_rules": "field_list[&1].validation_rules",
          "options": {
            "*": {
              "name": "field_list[&3].options[&1].name",
              "value": "field_list[&3].options[&1].value"
            },
            "#null": "field_list[&2].options"
          }
        }
      }
    }
  }
]

操作说明

  1. 第一步Shift:修正层级引用逻辑,直接通过@(2,system_field_options)和@(2,custom_field_options)将选项数组映射到对应field_list条目的options字段,避免嵌套遍历的层级错误。
  2. 第二步Modify:用isNull函数为无options字段的条目设置默认值null。
  3. 第三步Shift:清理options数组中的冗余字段(如custom_field_options里的id、default),只保留name和value。

转换结果

输出与期望完全匹配:

{
  "field_list": [
    {
      "crm_field_identifier": 1,
      "name": "Subject",
      "required": false,
      "description": "",
      "target_property": "subject",
      "ui_property": "subject",
      "is_custom_field": "false",
      "validation_rules": {
        "ui_regex": null
      },
      "options": null
    },
    {
      "crm_field_identifier": 2,
      "name": "Status",
      "required": false,
      "description": "Request status",
      "target_property": "status",
      "ui_property": "status",
      "is_custom_field": "false",
      "validation_rules": {
        "ui_regex": null
      },
      "options": [
        {
          "name": "Open",
          "value": "open"
        },
        {
          "name": "Pending",
          "value": "pending"
        },
        {
          "name": "On-hold",
          "value": "hold"
        },
        {
          "name": "Solved",
          "value": "solved"
        }
      ]
    },
    {
      "crm_field_identifier": 3,
      "name": "Test",
      "required": false,
      "description": "",
      "target_property": 3,
      "ui_property": "tagger",
      "is_custom_field": "true",
      "validation_rules": {
        "ui_regex": null
      },
      "options": [
        {
          "name": "Option1",
          "value": "Option1"
        },
        {
          "name": "Option2",
          "value": "Option2"
        },
        {
          "name": "Option3",
          "value": "Option3"
        }
      ]
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:40:49