我的Json响应(以字符串形式返回),
"[{\"Serial\":5,\"Name\":\"hold\",\"Types\":[{\"Serial\":36,\"Id\":5,\"Data\":true}]}]"
我的脚本断言,
import groovy.json.JsonSlurper
def ResponseMessage = messageExchange.response.responseContent
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage)
//verify the slurper isn't empty
assert !(jsonSlurper.isEmpty())
assert jsonSlurper.Serial == 5
但我收到错误
" JSON有效负载应该以一个开放的大括号开始' {'或者是一个开放的方括号' ['。 相反,'" [{\" Serial \":5,\" Name \":\" hold \", \"类型\":[{\"串行\":36,\"标识\":5,\"数据\& #34;:真}]}]"'在线上找到:1,列:1"
如何修复此脚本,我只想声明我的响应不应为空,而Serial等于5。
答案 0 :(得分:0)
所以我通过简单的正则表达式解决了我自己的问题。
以下是代码人员,
//imports
import groovy.json.JsonSlurper
//grab the response
def ResponseMessage = messageExchange.response.responseContent
def TrimResponse =ResponseMessage.replaceAll('^\"|\"$','').replaceAll('^ \\[|\\]$','').replaceAll('\\\\','')
//define a JsonSlurper
def jsonSlurper = new JsonSlurper().parseText(TrimResponse)
//verify the slurper isn't empty
assert !(jsonSlurper.isEmpty())
assert jsonSlurper.Serial != null
assert jsonSlurper.Serial == 5
assert jsonSlurper.Types[0].Serial == 36
享受:)