PHP将XML转换为JSON
我正在尝试将xml中的xml转换为json。如果我使用简单的xml和json_encode进行简单的转换,则xml中的任何属性都不会显示。
$xml = simplexml_load_file("states.xml");echo json_encode($xml);
所以我试图像这样手动解析它。
foreach($xml->children() as $state){
$states[]= array('state' => $state->name);
}
echo json_encode($states);
状态的输出{"state":{"0":"Alabama"}}
不是{"state":"Alabama"}
我究竟做错了什么?
XML:
<?xml version="1.0" ?><states>
<state id="AL">
<name>Alabama</name>
</state>
<state id="AK">
<name>Alaska</name>
</state>
</states>
输出:
[{"state":{"0":"Alabama"}},{"state":{"0":"Alaska"}
var dump:
object(SimpleXMLElement)#1 (1) {["state"]=>
array(2) {
[0]=>
object(SimpleXMLElement)#3 (2) {
["@attributes"]=>
array(1) {
["id"]=>
string(2) "AL"
}
["name"]=>
string(7) "Alabama"
}
[1]=>
object(SimpleXMLElement)#2 (2) {
["@attributes"]=>
array(1) {
["id"]=>
string(2) "AK"
}
["name"]=>
string(6) "Alaska"
}
}
}
回答:
我想到了。json_encode处理对象的方式与处理字符串的方式不同。我将该对象转换为字符串,现在可以正常工作。
foreach($xml->children() as $state){
$states[]= array('state' => (string)$state->name);
}
echo json_encode($states);
以上是 PHP将XML转换为JSON 的全部内容, 来源链接: utcz.com/qa/427880.html