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