在说转义之前先简单说下Json数据格式:
正常的Json数据是这样的:
{"msg":"密码错误!","code":60016}
但是如果遇到这样的数据:
放到JMeter里就会报错了~
原因,在Java中,字符串是以最近两个双引号为一个整体,当出现这种格式的时,双引号就“配对”错误。
解决方案1:对Json里的数据进行转义,即在错误的双引号位置加个 \ 进行转义。在线转义工具
{
"msg":"密码错误!",
"code":60016,
"data":"{\"name\":\"测试超有范\"}"
}
String b = "{\"msg\":\"密码错误!\",\"code\":60016,\"data\":\"{\"name\":\"测试超有范\"}\"}";
解决方案2:使用fastjson 提供的方法进行转义
import com.alibaba.fastjson.JSON;
//json数据在sql查询出来后,需要通过获取对象的方式得到content_json的字符串类型
String dd = vars.getObject("sd").get(0).get("content_json");
//把content_json进行转义,然后放到请求数据里,就会带有转义的 \
vars.put("requestBody",JSON.toJSONString(dd));