如何在PHP中从SOAP调用获取JSON响应
由于SOAP客户端默认返回XML响应,所以我需要得到JSON响应,而不是XML响应如何在PHP中从SOAP调用获取JSON响应,php,soap-client,Php,Soap Client,由于SOAP客户端默认返回XML响应,所以我需要得到JSON响应,而不是XML响应 $client = new SoapClient(null, array('location' => "http://localhost/soap.php", 'uri' => "http://test-uri/")); 在这种情况下,需要在中设置什么属性,以便返回JSON响应?SOAP只支持XML消息格式 如果您试
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
在这种情况下,需要在中设置什么属性,以便返回JSON响应?SOAP只支持XML消息格式 如果您试图连接的SOAP服务器是您没有直接访问权的第三方服务器,则必须在接收到XML响应后将其转换为JSON,如本例所示
如果希望web服务服务器支持json等不同的数据类型,则需要研究SOAP仅支持XML消息格式 如果您试图连接的SOAP服务器是您没有直接访问权的第三方服务器,则必须在接收到XML响应后将其转换为JSON,如本例所示
如果您希望web服务服务器支持不同的数据类型,如json,您需要研究一下,根据我从一些研究中发现的情况,SoapClient没有任何内置的方法可以直接将数据作为json返回(其他人都知道如果我错了,这将节省大量事后处理!)因此,您可能需要获取XML返回的数据并手动解析它 我记得SimpleXMLElement提供了一些有用的功能,可以肯定的是,有人编写了一些代码片段来实现这一点:
$value){
$res=null;
normalizeSimpleXML($value$res);
如果(($key='@attributes')&&($key)){
$result=$res;
}否则{
$result[$key]=$res;
}
}
}否则{
$result=$data;
}
}
normalizeSimpleXML(simplexml\u load\u字符串($xml),$result);
返回json_encode($result);
}
?>
根据我在一些研究中发现的情况,SoapClient没有任何内置方法可以直接以JSON的形式返回数据(其他人都知道如果我错了,这将节省大量事后处理!),因此您可能需要获取XML返回的数据并手动解析它
我记得SimpleXMLElement提供了一些有用的功能,可以肯定的是,有人编写了一些代码片段来实现这一点:
$value){
$res=null;
normalizeSimpleXML($value$res);
如果(($key='@attributes')&&($key)){
$result=$res;
}否则{
$result[$key]=$res;
}
}
}否则{
$result=$data;
}
}
normalizeSimpleXML(simplexml\u load\u字符串($xml),$result);
返回json_encode($result);
}
?>
如果结果为PHP数组格式,例如:
object(stdClass)#2(6){[“category_id”]=>int(1)[“parent_id”]=>
int(0)[“名称”]=>string(12)“根目录”[“位置”]=>int(0)
然后您可以使用
//result is the variable with php array value
$JSON = json_encode($result);
print_r($JSON);
详细了解,,
观察-如果结果是PHP数组格式,例如: object(stdClass)#2(6){[“category_id”]=>int(1)[“parent_id”]=> int(0)[“名称”]=>string(12)“根目录”[“位置”]=>int(0) 然后您可以使用
//result is the variable with php array value
$JSON = json_encode($result);
print_r($JSON);
详细了解,,
观看-非常好的解决方案!非常好的解决方案!