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

如何在Jolt Spec中移除字符串中的单引号

问题需求

处理一段包含单引号(')的长字符串,需要通过Jolt规则移除其中的单引号,得到指定格式的输出。

输入数据

{
  "text": "2023-05-24 12:11:06.185 google.com i-axcel: phone 'New Launch of software city' on USKANSAS changed from USNYC"
}

现有Jolt规则

[
  {
    "operation": "shift",
    "spec": {
      "text": ["description_cpy2"]
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "description_cpy2": "=split('phone',@(1,description_cpy2))",
      "pharse": "=split('changed',@(1,description_cpy2[1]))",
      "pharseone": "@(1,pharse[0])",
      "pharsetwo": "@(1,pharse[0])"
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "pharseone": "=trim",
      "pharsetwo": "=trim"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "pharseone": "pharseone",
      "pharsetwo": "pharsetwo"
    }
  }
]

当前输出

{
  "pharseone" : "'New Launch of software city' on USKANSAS",
  "pharsetwo" : "'New Launch of software city' on USKANSAS"
}

期望输出

{
  "pharseone" : "New Launch of software city on USKANSAS",
  "pharsetwo" : "New Launch of software city on USKANSAS"
}

解决方案

在现有Jolt规则的modify-overwrite-beta阶段,添加字符串替换操作,用=replace函数移除单引号即可。这里提供两种修改方式:

方式一:在修剪空格后添加替换步骤

修改后的完整Jolt规则:

[
  {
    "operation": "shift",
    "spec": {
      "text": ["description_cpy2"]
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "description_cpy2": "=split('phone',@(1,description_cpy2))",
      "pharse": "=split('changed',@(1,description_cpy2[1]))",
      "pharseone": "@(1,pharse[0])",
      "pharsetwo": "@(1,pharse[0])"
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "pharseone": ["=trim", "=replace('', '''', @(1,&))"],
      "pharsetwo": ["=trim", "=replace('', '''', @(1,&))"]
    }
  },
  {
    "operation": "shift",
    "spec": {
      "pharseone": "pharseone",
      "pharsetwo": "pharsetwo"
    }
  }
]

方式二:合并修剪与替换步骤,简化规则

[
  {
    "operation": "shift",
    "spec": {
      "text": ["description_cpy2"]
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "description_cpy2": "=split('phone',@(1,description_cpy2))",
      "pharse": "=split('changed',@(1,description_cpy2[1]))",
      "pharseone": ["=trim(@(1,pharse[0]))", "=replace('', '''', @(1,&))"],
      "pharsetwo": ["=trim(@(1,pharse[0]))", "=replace('', '''', @(1,&))"]
    }
  },
  {
    "operation": "shift",
    "spec": {
      "pharseone": "pharseone",
      "pharsetwo": "pharsetwo"
    }
  }
]

关键说明

=replace('', '''', @(1,&)) 是核心操作:

  • 第一个空字符串是替换后的内容,第二个参数'''是转义后的单引号(Jolt里用三个单引号表示一个单引号),第三个参数@(1,&)表示当前字段的原始值。
  • 数组中的操作会按顺序执行,先修剪空格再移除单引号,最终得到不带单引号的目标字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:37:48