3

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

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 top json?

4

2 回答 2

8

您可以使用 json_encode。 http://php.net/manual/en/function.json-encode.php

json_encode($array)
于 2013-10-04T09:43:14.657 回答
1

这就是为什么这是一个非常糟糕的主意。

$xml     = '<root><test><line code="line1">hello</line><line code="line2">world</line></test></root>';
$element = new \SimpleXMLElement($xml);
$json    = json_encode($element);

如果您查看 的输出json_encode,它将如下所示:

{"test":{"line":["hello","world"]}}

由于元素重复,您刚刚失去了所有属性。没有“简单”的解决方案,您必须使用一段自定义代码来循环遍历每个元素并正确格式化。如果您尝试通过 访问元素$element,您仍然可以获得属性,因为 SimpleXML 不是常规的 PHP 类。

我想出了一个适用于我给出的示例和典型问题的解决方案,尽管它不处理名称空间。

http://pastebin.com/ksSqkJbu

于 2014-03-07T17:14:41.817 回答