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

如何在NetSuite Case公式中从自由文本字段提取JSON值

NetSuite Case公式中从自由文本字段提取JSON值的方法

NetSuite公式编辑器没有原生JSON解析函数,只能通过字符串截取函数组合实现从自由文本字段的JSON内容中提取指定键对应的值。以下针对你的示例场景给出具体实现:

示例场景

假设自由文本字段ID为custcol_test,存储的JSON内容为:{"a": "testa"},需要提取键a对应的testa值。

公式实现

在公式文本列中使用以下公式:

SUBSTR(
  custcol_test,
  INSTR(custcol_test, '"a": "') + LENGTH('"a": "'),
  INSTR(custcol_test, '"', INSTR(custcol_test, '"a": "') + LENGTH('"a": "')) - (INSTR(custcol_test, '"a": "') + LENGTH('"a": "'))
)

公式解析

  • INSTR(custcol_test, '"a": "'):定位键"a": "在JSON字符串中的起始位置
  • + LENGTH('"a": "'):跳过键的内容,定位到目标值的起始位置
  • 第二个INSTR:从目标值起始位置开始,找到下一个双引号的位置,以此作为目标值的结束位置
  • SUBSTR:根据起始位置和长度,截取键a对应的字符串值

注意事项

  1. 该方法仅适用于无转义双引号的简单JSON结构,如果值中包含转义双引号(如{"a": "te\"sta"}),需要额外处理转义字符
  2. 如果目标值是数值类型(无包裹双引号,如{"a": 123}),需调整公式的定位逻辑,将结束位置改为定位}或,:
SUBSTR(
  custcol_test,
  INSTR(custcol_test, '"a": ') + LENGTH('"a": '),
  CASE
    WHEN INSTR(custcol_test, ',', INSTR(custcol_test, '"a": ')) > 0 THEN INSTR(custcol_test, ',', INSTR(custcol_test, '"a": '))
    ELSE INSTR(custcol_test, '}', INSTR(custcol_test, '"a": '))
  END - (INSTR(custcol_test, '"a": ') + LENGTH('"a": '))
)
  1. 确保JSON格式稳定,键名的大小写、空格符与公式中的匹配(比如JSON中是"a": "testa"就不能写成"A": "testa")

内容的提问来源于stack exchange,提问作者Sanath kumar siripuram

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:15:55