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

回到顶部