发布日期:2018-03-26
问题:用PHP将XML转为JSON+ 查看更多
问题:用PHP将XML转为JSON
+ 查看更多
发布日期:2018-03-10 16:55
分类:PHP
浏览次数:272
描述:我想用PHP将XML转为JSON,我用xml和json_encode进行了简单的转化,但是没有效果。
$xml = simplexml_load_file("states.xml"); echo json_encode($xml);
我进行了手动解析:
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"}打印:
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);