1

我正在尝试构建我的第一个公共 API,它运行得很好,但是在转换将要发布的不同数据格式时遇到了一些麻烦。基本上,API 应该同时接受 JSON 和 XML,现在我正在尝试将它们转换为通用的 PHP 数组结构。

对于 JSON,我的示例如下所示:

$people = array( array('name' => 'casper',
                       'shoesize' => 41
                 ),
                 array('name' => 'christine',
                       'shoesize' => 37
                 )
);

$data = json_encode($people);
return json_decode($data);

这将导致:

[{"name":"casper","shoesize":"41"},{"name":"charlotte","activated":"1"}]

XML 示例如下:

$xml = '<?xml version="1.0"?>'.
       '<people>'.
           '<person>'.
               '<name>casper</name>'.
               '<shoesize>41</shoesize>'.
           '</person>'.
           '<person>'.
               '<name>christine</name>'.
               '<shoesize>37</name>'.
           '</person>'.
       '</people>';

$xml = simplexml_load_string($xml);
$data = json_encode($xml);
return json_decode($data);

这将导致:

{"person":[{"name":"casper","shoesize":"42"},{"name":"christina","shoesize":"12"}]}

谁能弄清楚我将如何在两个示例中实现相同的数组结构?

4

1 回答 1

2

我认为这可以帮助你:-

 $xml = '<?xml version="1.0"?>'.
   '<people>'.
       '<person>'.
           '<name>casper</name>'.
           '<shoesize>41</shoesize>'.
       '</person>'.
       '<person>'.
           '<name>christine</name>'.
           '<shoesize>37</shoesize>'.
       '</person>'.
   '</people>';
 $xml = simplexml_load_string($xml);
 $data = json_encode($xml);
echo '<pre>';
 $dataarray=(json_decode($data,true));
$requiredarray=$dataarray['person'];
print_r($requiredarray);

输出 :-

Array
(
    [0] => Array
        (
            [name] => casper
            [shoesize] => 41
        )

    [1] => Array
        (
            [name] => christine
            [shoesize] => 37
        )

)
于 2013-07-16T12:27:55.800 回答