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

如何编写JOLT规则实现F1非空优先、F2兜底的result输出?

JOLT实现非空优先取值逻辑

针对你的需求(F1非空则取F1到result,F1为null则取F2到result),可以使用JOLT的shift操作结合条件匹配来实现,具体规范如下:

[
  {
    "operation": "shift",
    "spec": {
      "F1": {
        "null": {
          "@(2,F2)": "result"
        },
        "*": {
          "@": "result"
        }
      }
    }
  }
]

逻辑说明

  • 对F1字段做分支判断:
    • 当F1的值为null时,通过@(2,F2)获取根节点下的F2值,赋值给result;@(2)表示向上回溯两层路径(当前处于F1 -> null分支,回溯两层回到根节点)
    • 当F1为任意非null值时,用*匹配所有非空值,直接将F1的值赋值给result

验证不同输入场景

场景1:F1非空输入

{
  "F1": "1",
  "F2": "2"
}

转换输出:

{
  "result": "1"
}

场景2:F1为null输入

{
  "F1": null,
  "F2": "2"
}

转换输出:

{
  "result": "2"
}

扩展:处理F1不存在的情况

如果需要同时兼容F1字段不存在的场景(此时也取F2的值),可以调整规范为:

[
  {
    "operation": "shift",
    "spec": {
      "F1": {
        "null": {
          "@(2,F2)": "result"
        },
        "*": {
          "@": "result"
        }
      },
      // 当F1不存在时,直接取F2的值
      "F2": {
        "*": {
          "@": "result"
        }
      }
    }
  }
]

注:shift操作中,若F1存在则优先匹配F1的分支,只有F1不存在时才会触发F2的分支赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:43:20