2016-04-01 29 views
0

Bir json cevabı veren soapui'de bir isteğim var. Yanıtın içeriğini almak için groovy kullanıyorum. yanıtı: Bu yanıtın itibarenGroovy kullanarak json formatındaki veriler nasıl alınır?

<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> 

i gibi her düğümü almak istiyorum:

yüzden bu harika

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) 

kullanmak created_at deleted_at ve ben bu hata iletisini:

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 

Sadece zaman damgası düğümü için çalışır. herhangi bir yardım lütfen. teşekkür ederiz

cevap

2

result.data bir liste olduğu için userid sadece listeden ilk öğeyi almak gerekir

için (bir öğe içeren) bir listesini döndürür, böylece denemek, bu yüzden var:

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

şimdi hata mesajı yok, ancak sonuç sıfır, özellikte hiçbir şey depolar. –

+0

üzgünüm çalışıyor, teşekkürler –