我正在使用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)
答案 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() )