如何使用JSON Data Extractor去除JSON ID值外的方括号获取纯数字
问题根因
你当前使用的JSON提取语法不符合实际JSON结构:
- 响应中的
id字段为字符串类型,值为"[667]",并非数组结构,你使用数组索引语法$.id[0]自然无法提取到纯数字内容。
解决方案
根据你使用的工具不同,可以选择以下任意一种方法:
方法1:提取后做字符串清洗(通用所有工具)
先用$.id提取到完整字符串[667],再用正则替换掉所有非数字字符即可得到纯数字667:
- JMeter场景可以直接调用函数处理:
${__javaScript("${你提取的变量名}".replace(/[^0-9]/g,''),)} - Postman场景可以在测试脚本中处理:
const res = pm.response.json(); const leadId = res.id.replace(/\[|\]/g, ''); // 存入变量后续调用 pm.collectionVariables.set("lead_id", leadId);
- 其他工具均可调用对应语言/工具的字符串替换方法,删除方括号即可。
方法2:直接用带正则的JSONPath提取(支持高阶JSONPath的工具可用)
如果你的JSON Data Extractor支持正则匹配语法,可以直接用以下JSONPath表达式提取:$.[?(@.id =~ /\[(\d+)\]/)].id.replace(/\D/g, '')
(注:部分工具对JSONPath函数支持度不同,如果失效请优先使用方法1)
内容的提问来源于stack exchange,提问作者Avinash Kunapareddy
相关产品推荐
相关产品推荐

