从SoapUI返回JsonSlurper结果

时间:2014-03-03 14:06:05

标签: json groovy soapui

我正在使用SOAPUI来模拟web-api服务,我正在读取静态json响应文件的内容,但是根据用户在其中传递的内容更改了几个节点的内容。请求。

我无法创建多个回复,因为附加费是根据传递的金额计算的。

由slurper返回的对象的toString()方法正在替换{with [使我的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 个答案:

答案 0 :(得分: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() )