あなたはルートに行くことができjson_encode
、json_decode
そしてあなたが欠けているものを追加することができます。なぜなら、そのjson_encode
-ingはSimpleXMLElement
.
ルールとその詳細に興味がある場合は、それに関する 2 つのブログ記事を書きました。
おそらくもっと興味深いのは、json シリアライゼーションを変更して独自の形式を提供する方法を示す 3 番目の部分です (たとえば、属性を保持するため)。
本格的な例が付属しています。コードの抜粋を次に示します。
$xml = '<xml>
<items>
<item abc="123">item one</item>
<item abc="456">item two</item>
</items>
</xml>';
$obj = simplexml_load_string($xml, 'JsonXMLElement');
echo $json = json_encode($obj, JSON_PRETTY_PRINT), "\n";
print_r(json_decode($json, TRUE));
JSON と配列の出力は次のとおりです。属性はその一部であることに注意してください。
{
"items": {
"item": [
{
"@attributes": {
"abc": "123"
},
"@text": "item one"
},
{
"@attributes": {
"abc": "456"
},
"@text": "item two"
}
]
}
}
Array
(
[items] => Array
(
[item] => Array
(
[0] => Array
(
[@attributes] => Array
(
[abc] => 123
)
[@text] => item one
)
[1] => Array
(
[@attributes] => Array
(
[abc] => 456
)
[@text] => item two
)
)
)
)