将SimpleXML转换为JSON PHP
我正在使用Bigbluebutton的PHPAPI,我希望获得所有会议会话。在调用方法以显示会议时,我得到以下输出:将SimpleXML转换为JSON PHP,php,xml,json,Php,Xml,Json,我正在使用Bigbluebutton的PHPAPI,我希望获得所有会议会话。在调用方法以显示会议时,我得到以下输出: Array ( [returncode] => SimpleXMLElement Object ( [0] => SUCCESS ) [messageKey] => SimpleXMLElement Object ( ) [message] => SimpleXMLElement Object
Array (
[returncode] => SimpleXMLElement Object
(
[0] => SUCCESS
)
[messageKey] => SimpleXMLElement Object
(
)
[message] => SimpleXMLElement Object
(
)
[0] => Array
(
[meetingId] => SimpleXMLElement Object
(
[0] => as's meeting
)
[meetingName] => SimpleXMLElement Object
(
[0] => as's meeting
)
[createTime] => SimpleXMLElement Object
(
[0] => 1380878550574
)
[attendeePw] => SimpleXMLElement Object
(
[0] => ap
)
[moderatorPw] => SimpleXMLElement Object
(
[0] => mp
)
[hasBeenForciblyEnded] => SimpleXMLElement Object
(
[0] => false
)
[running] => SimpleXMLElement Object
(
[0] => false
)
)
[1] => Array
(
[meetingId] => SimpleXMLElement Object
(
[0] => XYZ's meeting
)
[meetingName] => SimpleXMLElement Object
(
[0] => XYZ's meeting
)
[createTime] => SimpleXMLElement Object
(
[0] => 1380879253000
)
[attendeePw] => SimpleXMLElement Object
(
[0] => ap
)
[moderatorPw] => SimpleXMLElement Object
(
[0] => mp
)
[hasBeenForciblyEnded] => SimpleXMLElement Object
(
[0] => false
)
[running] => SimpleXMLElement Object
(
[0] => true
)
)
)
如何将此simplexml转换为顶级json?您可以使用json\u编码。
这就是为什么这是一个非常糟糕的主意
$xml = '<root><test><line code="line1">hello</line><line code="line2">world</line></test></root>';
$element = new \SimpleXMLElement($xml);
$json = json_encode($element);
由于元素重复,您刚刚丢失了所有属性。没有“简单”的解决方案,您必须使用一段自定义代码来循环遍历每个元素并正确设置其格式。如果您确实尝试通过$element
访问元素,您仍然可以获得属性,因为SimpleXML不是一个普通的PHP类
我提出了一个解决方案,它将适用于我给出的示例和典型问题,尽管它不处理名称空间
谢谢,非常直截了当。我不知道为什么这个答案会被高票接受。它不会进行1对1的转换,因为重复的XML标记将被覆盖。这个答案特定于问题中的数据。
$xml = '<root><test><line code="line1">hello</line><line code="line2">world</line></test></root>';
$element = new \SimpleXMLElement($xml);
$json = json_encode($element);
{"test":{"line":["hello","world"]}}