您的响应字符串是 XML 格式,它有额外的 \ 标记首先您应该删除 \ 标记并使用 PHP 的 simplexml_load_string 方法读取 XML。所以试试下面的代码
<?php
$str="<string xmlns=\"http:\/\/schemas.microsoft.com\/2003\/10\/Serialization\/\">
{\"response\":\"0\",\"errorMsg\":\"\",\"lstsmi\":[{\"code_bordereau\":\"111111111\",\"etat\":\"yes\"},{\"code_bordereau\":\"222222222\",\"etat\":\"yes\"}]}<\/string>";
$str=str_replace("\\","",$str);
$xml = simplexml_load_string($str);
//as a xml
echo "<pre>";
print_r($xml);
echo "<pre>";
//as a json
echo $xml[0];
echo "<br/>";
//as an array
$response = json_decode($xml[0]);
echo "<pre>";
print_r($response);
echo "<pre>";
结果
SimpleXMLElement Object
(
[0] =>
{"response":"0","errorMsg":"","lstsmi":[{"code_bordereau":"111111111","etat":"yes"},{"code_bordereau":"222222222","etat":"yes"}]}
)
{"response":"0","errorMsg":"","lstsmi":[{"code_bordereau":"111111111","etat":"yes"},{"code_bordereau":"222222222","etat":"yes"}]}
stdClass Object
(
[response] => 0
[errorMsg] =>
[lstsmi] => Array
(
[0] => stdClass Object
(
[code_bordereau] => 111111111
[etat] => yes
)
[1] => stdClass Object
(
[code_bordereau] => 222222222
[etat] => yes
)
)
)