2016-07-26 5 views
0

내 JSON 응답,Soapui 스크립트 어설, 문자열 (문자열로 반환)

"[{\"Serial\":5,\"Name\":\"hold\",\"Types\":[{\"Serial\":36,\"Id\":5,\"Data\":true}]}]" 

내 스크립트 어설 같은 JSON 응답 복귀,

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 페이로드는 열린 중괄호 '{'또는 여는 대괄호 '['로 시작해야합니다. 대신 '{\"직렬 \ ": 5, \"이름 \ ": \" ", \"Types \ ": [{\"Serial \ ": 36, \"Id \ ": 5, \"Data \ ": tr UE}]}] " '라인에 발견되었다 : 1, 칼럼 : 1"

이 스크립트를 수정하는 방법, 난 그냥 내 반응은 비워 둘 수 없습니다해야한다고 주장하고 싶은 시리얼 5.

+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 

코드들입니다; 그것은 * 문자열이 아니어야합니다. 서버에서 응답을 수정해야합니다. – JJJ

+0

유효한 Json 응답이 없습니다. http://jsonlint.com/을 사용하여 유효성을 검사했습니다. – Gkm

+1

오류 메시지에 표시된대로 유효하지 않습니다. ''{{ "sysSerial": ...} "문자열은 jsonlint에 붙여 넣으면, – JJJ

답변

0
같다

그래서 간단한 정규식으로 내 문제를 해결했습니다. 여기

즐기 :)