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

JOLT中使用charAt()提取指定位置字符返回null的问题

JOLT配置输出null的解决方法

问题场景

使用给定的JOLT转换规格处理输入数据时,输出结果为null,期望从输入的A字段字符串中提取索引为2的字符(即第3个字符),得到指定的输出结构。

原配置与数据

  • 错误的JOLT Spec:
[
  {
    "operation": "shift",
    "spec": {
      "f($;$ = $.A.charAt(2)  )": "charAt"
    }
  }
]
  • 输入数据:
[
  {
    "A": "Active"
  }
]
  • 期望输出:
{
  "charAt": "t"
}

错误原因

原Spec的写法完全不符合JOLT的语法规则:

  • JOLT的shift操作仅负责数据结构的重排,不支持直接嵌入JavaScript的charAt()方法语法。
  • 配置中的"f($;$ = $.A.charAt(2))"是无效的匹配键,无法匹配到输入中的任何数据,因此输出为null。

正确的JOLT配置

要实现字符串字符提取,需要使用JOLT的modify-overwrite-beta操作(支持字符串处理函数),结合shift完成结构调整,具体配置如下:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        // 从A字段的字符串中截取索引2到3的子串(左闭右开),即第3个字符
        "charAt": "=substring(@(1,A),2,3)"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        // 将数组元素中的charAt字段提取到根节点
        "charAt": "charAt"
      }
    }
  }
]

验证结果

将上述正确配置应用于输入数据后,输出与期望完全一致:

{
  "charAt": "t"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:23:18