我正在尝试构建我的第一个公共API,这很好,但是我遇到了转换将被POST的不同数据格式的麻烦。基本上,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"}]}
有谁可以弄清楚我在两个例子中如何能够实现相同的数组结构?
答案 0 :(得分: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
)
)