2016-07-26 17 views
0

私のJSONレスポンスとしてJSONレスポンスのリターン、SOAPUIスクリプトアサーション、(文字列として返します)、文字列

"[{\"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ペイロードは、中括弧 '{'または開いている角括弧 '['。 ]で始まる必要があります。代わりに、[シリアル\":5、\ "名前\":\ " "、" "\"タイプ\ ":"シリアル\ ":36、\" ID \ ":5、\"データ\ ":tr UE}]}] "」行で見つかった:1、列:1"

このスクリプトを修正する方法を、私はちょうど私の応答が空であってはならないことを主張したいとシリアルが5

+0

応答が無効であるをお楽しみください、コードの男です。 *は文字列であってはなりません。サーバー上の応答を修正する必要があります。 – JJJ

+0

有効なJsonレスポンスはありません。http://jsonlint.com/を使用して検証しました。 – Gkm

+1

エラーメッセージには、*有効ではありません。 '' {{"sysSerial":...} 'jsonlintに文字列を貼り付けると、 – JJJ

答えて

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 

が:)

関連する問題