2016-04-01 27 views
0

私はsoapuiでjsonレスポンスを返すリクエストを受け取りました。 私はgroovyを使ってレスポンスの内容を取得しています。 応答:私のような各ノードを取得したい、この応答からgroovyを使用してjson形式からデータを取得するには?

<item><response>{ 
    "timestamp": "2016-04-01T16:40:34", 
    "data": [ 
    { 
     "deleted_at": null, 
     "userid": "b6d66002-8da4-4c03-928c-46871f084fb8", 
     "updated_by": null, 
     "created_at": "2016-03-01T16:40:34", 
     "updated_at": "2016-03-01T16:40:34", 
     "created_by": null, 
     "value": "hBeO", 
     "setting": "test", 
     "name": "test2" 
    } 
    ], 
    "success": true 
}</response></item> 

: deleted_atのcreated_at

はので、私はこのグルーヴィー

import groovy.json.JsonSlurper 

def response = context.expand('${set_settings#Response#declare namespace ns1=\'https://wato.io/ns/20160131\'; //ns1:set_settings_resp[1]/ns1:item[1]/ns1:response[1]}') 
def slurper = new JsonSlurper() 
def result = slurper.parseText(response) 

testRunner.testCase.setPropertyValue("user_id", result.data.userid) 

を使用して、私は、このエラーメッセージが表示されます。

groovy.lang.MissingMethodException: No signature of method: com.eviware.soapui.impl.wsdl.WsdlTestCasePro.setPropertyValue() is applicable for argument types: (java.lang.String, java.util.ArrayList) values: [userid, [b6df6662-8da4-4c03-928c-46871f084fb8]] Possible solutions: setPropertyValue(java.lang.String, java.lang.String), getPropertyValue(java.lang.String) error at line: 8 

タイムスタンプノードでのみ動作します。 助けてください。 はありがとう

答えて

2

result.dataがリストであるため、それはuseridあなただけのリストから最初の項目を取得する必要があります

のために(一つのアイテムを含む)のリストを返すので、試すように、それは、です:

testRunner.testCase.setPropertyValue("user_id", result.data.userid.head()) 
+0

エラーメッセージは表示されませんが、結果はnullになり、プロパティには何も格納されません。 –

+0

申し訳ありませんが動作します、ありがとう –

関連する問題