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

如何定义可同时兼容数组和单对象场景的Jolt spec转换规则

解决方案

修正后的Jolt Spec

[
  {
    "operation": "cardinality",
    "spec": {
      "patient": "ONE",
      "patient.dateOfBirth": "ONE"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "patient": {
        "dateOfBirth": "patient.dateOfBirth",
        "firstName": "patient.firstName",
        "lastName": "patient.lastName"
      }
    }
  }
]

规则说明

  • 第一步cardinality操作负责标准化节点格式,兼容两种输入场景:
    • "patient": "ONE":自动识别patient节点类型,如果是对象数组则取第0个元素转换为单个对象,如果已经是单个对象则不做修改
    • "patient.dateOfBirth": "ONE":自动识别dateOfBirth节点类型,如果是字符串数组则取第0个元素转换为单个字符串,如果已经是单个字符串则不做修改
  • 第二步shift操作保持原有逻辑,仅映射需要的字段到目标输出结构。

原spec的问题在于将dateOfBirth的 cardinality 规则嵌套在patient节点的子层级中,当输入patient为单个对象时,嵌套的通配符规则无法正确作用到dateOfBirth字段,导致dateOfBirth仍然输出为数组。调整为平级的cardinality规则后即可覆盖两种输入场景,输出符合预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:36:01