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

如何移除JMeter中Groovy脚本生成JSON的多余字符

解决Groovy生成JSON请求时多余转义字符问题

问题根源

你遇到的多余\"是因为手动拼接JSON字符串时重复处理了引号转义,或是从CSV读取的原始数据本身带有多余引号,最终导致生成的JSON格式出错。

解决方案

优先用Groovy内置的JSON工具类生成请求体,避免手动拼接的失误,具体操作如下:

1. 规范CSV数据格式

确保Excel/CSV里的values列数据不要带额外引号,直接用逗号分隔值即可,比如:

AB1234,CB6988,BM9899

如果CSV数据已经带引号,读取时先批量去除:

def rawValues = vars.get("values").replaceAll(/"/, "") // 去掉所有多余引号
def valueList = rawValues.split(",").collect { it.trim() }

2. 用JsonBuilder自动生成正确JSON

不要手动拼接字符串,用Groovy的JsonBuilder构建请求体,它会自动处理字符串转义逻辑:

// 从JMeter变量获取CSV中的values值
def csvValues = vars.get("values")
// 分割为干净的字符串列表
def valueList = csvValues.split(",").collect { it.trim() }

// 构建目标JSON结构
def jsonBuilder = new groovy.json.JsonBuilder()
jsonBuilder([
    [
        key: "Login",
        operator: "EQUAL",
        fieldType: "STRING",
        values: valueList
    ]
])

// 将生成的JSON存入变量,供请求体调用
vars.put("requestBody", jsonBuilder.toString())

3. 替换错误的手动拼接代码

如果之前是类似下面的手动拼接写法,直接替换成上面的JsonBuilder方案:

// 错误示例:手动拼接导致转义混乱
def valuesStr = "\"AB1234\",\"CB6988\""
def requestBody = "[{\"key\":\"Login\",\"values\":[" + valuesStr + "]}]"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:05:03