Web services 如何仅从SOAPUI获取JSON响应

Web services 如何仅从SOAPUI获取JSON响应,web-services,groovy,soapui,Web Services,Groovy,Soapui,我正在进行一个项目,该项目提供XML和JSON类型的响应。我只需要从SOAPUI获取JSON响应来处理下一步 是否有任何SOAPUI api可用于通过groovy脚本仅获取JSON类型的响应 提前感谢。请检查此回复 假设它是一个REST服务,默认情况下,这种方法将以JSON格式获取响应 def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) def response = groovyUtils.getXmlHol

我正在进行一个项目,该项目提供XML和JSON类型的响应。我只需要从SOAPUI获取JSON响应来处理下一步

是否有任何SOAPUI api可用于通过groovy脚本仅获取JSON类型的响应


提前感谢。

请检查此回复


假设它是一个REST服务,默认情况下,这种方法将以JSON格式获取响应

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def response = groovyUtils.getXmlHolder("RequestStepName#Response")
// as a string -> def response = context.expand('${RequestStepName#Response}')

您可以使用#ResponseAsXml以xml的形式获取它。

在我开发的SOAPUI Javascript上下文中,我开发了这个算法

var xmlHolder = com.eviware.soapui.support.XmlHolder(messageExchange.responseContent);
var nodes = xmlHolder.getDomNodes("//SOAP-ENV:Envelope/SOAP-ENV:Body/ns:xxxxxx");

var obj = {};

toJsonObject(nodes[0], obj);

function toJsonObject(xmlObject, jsonObject) {
    for (var i = 0; i < xmlObject.getLength(); i++) {
        var node = xmlObject.item(i);
        if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
            if (node.getLength() == 1) {
                if (node.hasChildNodes()) {
                    jsonObject[node.getNodeName()] = String(node.item(0).getNodeValue());
                }
            } else {
                if (node.hasChildNodes()) {
                    jsonObject[node.getNodeName()] = {};
                    jsonObject[node.getNodeName()] = toJsonObject(node, jsonObject[node.getNodeName()]);
                }
            }
        }
    }
    return jsonObject;
}

log.info(JSON.stringify(obj));
context.setProperty('JSON: ', JSON.stringify(obj));
var xmlHolder=com.eviware.soapui.support.xmlHolder(messageExchange.responseContent);
var-nodes=xmlHolder.getDomNodes(“//SOAP-ENV:Envelope/SOAP-ENV:Body/ns:xxxxxx”);
var obj={};
toJsonObject(节点[0],对象);
函数到jsonObject(xmlObject,jsonObject){
对于(var i=0;i
var xmlHolder = com.eviware.soapui.support.XmlHolder(messageExchange.responseContent);
var nodes = xmlHolder.getDomNodes("//SOAP-ENV:Envelope/SOAP-ENV:Body/ns:xxxxxx");

var obj = {};

toJsonObject(nodes[0], obj);

function toJsonObject(xmlObject, jsonObject) {
    for (var i = 0; i < xmlObject.getLength(); i++) {
        var node = xmlObject.item(i);
        if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
            if (node.getLength() == 1) {
                if (node.hasChildNodes()) {
                    jsonObject[node.getNodeName()] = String(node.item(0).getNodeValue());
                }
            } else {
                if (node.hasChildNodes()) {
                    jsonObject[node.getNodeName()] = {};
                    jsonObject[node.getNodeName()] = toJsonObject(node, jsonObject[node.getNodeName()]);
                }
            }
        }
    }
    return jsonObject;
}

log.info(JSON.stringify(obj));
context.setProperty('JSON: ', JSON.stringify(obj));