将SimpleXML转换为JSON PHP

将SimpleXML转换为JSON PHP,php,xml,json,Php,Xml,Json,我正在使用Bigbluebutton的PHPAPI,我希望获得所有会议会话。在调用方法以显示会议时,我得到以下输出: Array ( [returncode] => SimpleXMLElement Object ( [0] => SUCCESS ) [messageKey] => SimpleXMLElement Object ( ) [message] => SimpleXMLElement Object

我正在使用Bigbluebutton的PHPAPI,我希望获得所有会议会话。在调用方法以显示会议时,我得到以下输出:

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"]}}