Rumah > Artikel > pembangunan bahagian belakang > Memperkenalkan penukaran format JSON dan XML dalam PHP
Semasa proses pembangunan, penukaran format data adalah masalah biasa. Dalam PHP, dua format data yang biasa digunakan ialah JSON dan XML. JSON ialah format pertukaran data ringan yang mudah dibaca dan ditulis, manakala XML ialah bahasa penanda boleh diperluas yang digunakan secara meluas dalam penghantaran data Web dan penyimpanan fail konfigurasi.
Artikel ini akan memperkenalkan cara menukar format JSON kepada format XML dalam PHP.
1. JSON kepada XML
PHP menyediakan fungsi json_decode() yang boleh digunakan untuk menukar data JSON kepada format XML. Sintaksnya adalah seperti berikut:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Antaranya, $json mewakili rentetan JSON yang hendak ditukar, $assoc mewakili sama ada untuk menukar objek JSON kepada tatasusunan bersekutu (lalai adalah palsu), $depth mewakili kedalaman rekursi maksimum (lalai ialah 512), $options mewakili pilihan penukaran (lalai ialah 0).
Berikut ialah contoh menukar tatasusunan JSON kepada XML:
<?php // JSON数据 $json_data = '{ "students": [ { "name": "David", "age": 20, "score": { "English": 90, "Math": 85, "Chinese": 95 } }, { "name": "Tom", "age": 22, "score": { "English": 80, "Math": 75, "Chinese": 85 } } ] }'; // 将JSON数据转换成PHP数组 $php_data = json_decode($json_data, true); // 将PHP数组转换成XML格式 $xml_data = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><data></data>'); array_to_xml($php_data, $xml_data); // 输出XML格式数据 header('Content-type: text/xml'); echo $xml_data->asXML(); // 将数组转换成XML格式的函数 function array_to_xml($arr, &$xml) { foreach ($arr as $key => $value) { if (is_array($value)) { if (!is_numeric($key)) { $subnode = $xml->addChild("$key"); array_to_xml($value, $subnode); } else { array_to_xml($value, $xml); } } else { $xml->addChild("$key", htmlspecialchars("$value")); } } } ?>
Kod di atas mula-mula menukar rentetan JSON kepada tatasusunan PHP, dan kemudian menggunakan fungsi rekursif untuk menukar Tatasusunan PHP ke dalam Format XML.
Data format XML keluaran adalah seperti berikut:
<?xml version="1.0" encoding="UTF-8"?> <data> <students> <0> <name>David</name> <age>20</age> <score> <English>90</English> <Math>85</Math> <Chinese>95</Chinese> </score> </0> <1> <name>Tom</name> <age>22</age> <score> <English>80</English> <Math>75</Math> <Chinese>85</Chinese> </score> </1> </students> </data>
2 XML kepada JSON
Untuk menukar format XML kepada format JSON, anda perlu menukar XML kepada PHP. tatasusunan dahulu , dan kemudian gunakan fungsi json_encode() untuk menukar tatasusunan PHP kepada rentetan JSON. Berikut ialah contoh menukar XML kepada JSON:
children() as $element) { if (count($element->children()) == 0) { $arr[$element->getName()] = strval($element); } else { $arr[$element->getName()][] = xml_to_array($element); } } return $arr; } ?>
Kod di atas mula-mula menukar rentetan XML kepada objek SimpleXMLElement melalui fungsi simplexml_load_string() dan kemudian menukar objek SimpleXMLElement kepada tatasusunan PHP melalui fungsi rekursif. Akhir sekali, gunakan fungsi json_encode() untuk menukar tatasusunan PHP kepada rentetan JSON.
Data format JSON output adalah seperti berikut:
{ "students": [ { "name": "David", "age": "20", "score": { "English": "90", "Math": "85", "Chinese": "95" } }, { "name": "Tom", "age": "22", "score": { "English": "80", "Math": "75", "Chinese": "85" } } ] }
Ringkasan
PHP menyediakan fungsi yang mudah untuk menukar format JSON kepada format XML dan format XML kepada Format JSON. Semasa proses pembangunan, memilih format data yang sesuai untuk penyimpanan dan pertukaran berdasarkan keperluan sebenar boleh mencapai penghantaran data dan kesan bacaan yang lebih baik.
Atas ialah kandungan terperinci Memperkenalkan penukaran format JSON dan XML dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!