Jmeter json路径提取器-如何从提取的值中删除[]
从 我正在使用路径提取器提取Jmeter json路径提取器-如何从提取的值中删除[],json,jmeter,regex,Json,Jmeter,Regex,从 我正在使用路径提取器提取token\u id…token\u id 然后在下一个post请求中使用变量,但它在调用中显示了额外的括号 "token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"] 在JSON中,方括号表示字符串、数字、布尔值、对象和数组的数组 “token_id”被解释为字符串数组。例如: "token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"] 确保将“token\u id”更改为s
token\u id
…token\u id
然后在下一个post请求中使用变量,但它在调用中显示了额外的括号
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
在JSON中,方括号表示字符串、数字、布尔值、对象和数组的数组 “token_id”被解释为字符串数组。例如:
"token_id":["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
确保将“token\u id”更改为string。我认为这是由插件版本1.3.0中引入的更改引起的,其中
JSONPath
提取器支持返回多个匹配值
您可以使用以下三种方法之一解决此问题:
JSONPath
表达式更改为
$..token_id[0]
因此,您不必手动删除括号和引号getToken=["82903430-f9b3-4f4b-9efa-ee1b991cb735"]
getToken_1=82903430-f9b3-4f4b-9efa-ee1b991cb735
getToken_matchNr=1
因此,仅仅使用${getToken_1}
应该可以像一个符咒一样工作JSONPath
提取器之后添加,并将以下代码放入“脚本”
区域:
String getToken = vars.get("getToken");
getToken = getToken.replaceAll("\\[\"(.*?)\"\\]", "$1");
vars.put("getToken",getToken);
使用Dmitri T建议的
getToken_1
删除额外的括号,因为in使用数组存储响应
${getToken_1}
是从上面的响应中删除[]
括号的合适正则表达式。${getToken}给出[“82903430-f9b3-4f4b-9efa-ee1b991cb735”]我想删除额外的括号
String getToken = vars.get("getToken");
getToken = getToken.replaceAll("\\[\"(.*?)\"\\]", "$1");
vars.put("getToken",getToken);