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

基于条件使用Jolt修改JSON:非空值拼接EUR需求求助

Jolt配置实现非空字段拼接EUR

需求

仅当字段值非空时,将字段值与"EUR"拼接;空值字段保持原样,不做修改。

原JSON数据

{"id": "4583","price": "149.99","sale_price": ""}

期望输出

{"id": "4583","price": "149.99 EUR","sale_price": ""}

错误的Jolt配置

{"operation": "modify-overwrite-beta","spec": {"price": "=concat(@(1,price),' EUR')","sale_price": ["=isNull", "=concat(@(1,sale_price),' EUR')"]}}

错误原因

原配置中sale_price的逻辑错误:Jolt里["=isNull", "=concat(...)"]的含义是如果=isNull(@(1,sale_price))返回true,就使用第二个表达式的值。但空字符串""不属于null,=isNull会返回false,因此会执行concat,把空字符串和"EUR"拼接成" EUR",不符合需求。

正确的Jolt配置

{
  "operation": "modify-overwrite-beta",
  "spec": {
    "price": ["=ifelse(notNull(@(1,price)) && @(1,price) != '', concat(@(1,price),' EUR'), @(1,price))"],
    "sale_price": ["=ifelse(notNull(@(1,sale_price)) && @(1,sale_price) != '', concat(@(1,sale_price),' EUR'), @(1,sale_price))"]
  }
}

配置说明

使用=ifelse函数做条件判断:

  • 先判断字段值非null且不为空字符串:notNull(@(1,字段名)) && @(1,字段名) != ''
  • 如果满足条件,执行concat拼接字段值和" EUR"
  • 不满足条件时,直接保留原字段值(空字符串或null)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:23:13