2014-03-03 112 views
-1

我正在使用SOAPUI模擬出一個web-api服務,我正在讀取一個靜態json響應文件的內容,但是根據什麼改變了幾個節點的內容用戶已經通過請求。從SoapUI返回JsonSlurper結果

我無法創建多個響應,因爲附加費是通過的金額計算的。

由slurper返回的對象的toString()方法取代{with [with invalidates my JsonResponse。我已經包含了下面代碼的重要部分,有沒有人有辦法解決這個問題,或者是JsonSlurper不是在這裏使用的正確的東西?

def json=slurper.parseText(new File(path).text) 

// set the surcharge to the two credit card nodes 
// these are being set fine 
json.AvailableCardTypeResponse.PaymentCards[0].Surcharge="${sur_charge}" 
json.AvailableCardTypeResponse.PaymentCards[1].Surcharge="${sur_charge}" 

response.setContentType("application/json;charset=utf-8"); 
response.setContentLength(length); 

Tools.readAndWrite(new ByteArrayInputStream(json.toString().getBytes("UTF-8")), length,response.getOutputStream()) 
return new com.eviware.soapui.impl.wsdl.mock.WsdlMockResult(mockRequest) 

回答

1

你正在把json變成一個List/Map結構,然後寫出這個List/Map結構。

您需要將您的列表和地圖轉換回json。

更改行:

Tools.readAndWrite(new ByteArrayInputStream(json.toString().getBytes("UTF-8")), length,response.getOutputStream()) 

Tools.readAndWrite(new ByteArrayInputStream(new JsonBuilder(json).toString().getBytes("UTF-8")), length,response.getOutputStream()) 
+0

謝謝你這麼多,撞我的頭撞牆用這個,工作的享受。 –