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

寻找Jolt中替代head的方法,提取JSON数组首个非空非null字符串

Jolt提取数组首个非空/非null值的实现方案

当然可以实现,不用依赖head函数,通过Jolt的多步转换组合就能达成需求。核心思路是先过滤掉数组中code为null或空字符串的元素,再从剩余有效元素里取第一个值映射到目标字段。

具体Jolt转换规则

[
  {
    "operation": "shift",
    "spec": {
      "part": {
        "subline": {
          "sublineGroup": {
            "sublineGroupTP": {
              "detailsGP": {
                "*": {
                  "dtlLine": {
                    "details": {
                      "code": {
                        "!null": {
                          "!": {
                            "@": "validCodes[]"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "countryCode": "${validCodes[0]}"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "validCodes": ""
    }
  }
]

规则说明

  • 第一步(shift):遍历detailsGP数组的每一项,仅收集code既不是null也不是空字符串的值到临时数组validCodes中。
  • 第二步(modify-overwrite-beta):提取validCodes数组的第一个元素,赋值给countryCode字段。
  • 第三步(remove):清理临时生成的validCodes数组,只保留最终需要的countryCode。

验证结果

将你提供的输入JSON传入上述Jolt规则后,会得到期望的输出:

{
  "countryCode": "US"
}

内容的提问来源于stack exchange,提问作者Prasad S Deshpande

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:37:32