いくつかの調査でわかったことから、SoapClient にはデータを直接 JSON として返す組み込みの方法がありません (私が間違っているかどうかは誰でも知っています。事実です!) そのため、おそらく XML で返されたデータを取得して、手動で解析する必要があります。
SimpleXMLElement がいくつかの便利な機能を提供していたことを思い出しました。確かに、誰かがphp.netで正確にそれを行うためのコード スニペットをいくつか持っていました: http://php.net/manual/en/class.simplexmlelement.php
<?php
function XML2JSON($xml) {
function normalizeSimpleXML($obj, &$result) {
$data = $obj;
if (is_object($data)) {
$data = get_object_vars($data);
}
if (is_array($data)) {
foreach ($data as $key => $value) {
$res = null;
normalizeSimpleXML($value, $res);
if (($key == '@attributes') && ($key)) {
$result = $res;
} else {
$result[$key] = $res;
}
}
} else {
$result = $data;
}
}
normalizeSimpleXML(simplexml_load_string($xml), $result);
return json_encode($result);
}
?>