从JSON和XML转换时实现相同的数组结构

I'm trying to build my first public API, which is going pretty fine, but i ran into some trouble converting different data formats that will get POSTed. Basically, the API should accept both JSON and XML, and now i'm trying to convert those into a common PHP array structure.

For JSON my example looks like this:

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

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

This will result in:

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

The XML example is as follows:

$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);

This will result in:

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

Can anyone figure out how i will be able to achieve the same array structure in both examples?

i think this could help you :-

 $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);

Output :-

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

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

)