Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-JSON vs. XML-Serialisierung/Deserialisierung

PHP-JSON vs. XML-Serialisierung/Deserialisierung

高洛峰
高洛峰Original
2017-01-20 09:19:161663Durchsuche

Die Serialisierung und Deserialisierung von Objekten wird häufig in der Webentwicklung verwendet. Die gängigeren sind die Serialisierung und Deserialisierung des JSON-Formats und des XML-Formats. Heute wollte ich eine kleine Demo von JSOP schreiben, habe jedoch festgestellt, dass ich PHP nicht verwenden kann Serialisierung. Ich habe die Informationen überprüft und eine einfache Array-JSON-Format-Serialisierung/Deserialisierung gemacht

PHP bietet die Funktionen json_encode und json_decode zum Serialisieren/Deserialisieren von Objekten im JSON-Format

$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas

php json与xml序列化/反序列化

Einfache Serialisierung/Deserialisierung im Array-XML-Format

PHP bietet die Funktionen wddx_serialize_value und wddx_deserialize zum Serialisieren/Deserialisieren von Objekten im XML-Format

$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas

php json与xml序列化/反序列化

Obwohl das Ausgabeformat aufgrund der HTML-Transkodierung seltsam ist, sieht die serialisierte Zeichenfolge tatsächlich so aus:

php json与xml序列化/反序列化

Im Vergleich zum JSON-Format gibt es viel mehr Felder.
Komplexe Objekt-JSON-Format-Serialisierung/Deserialisierung. Wenn wir arbeiten, ist das von uns verarbeitete Objekt kein einfaches Array, sondern ein benutzerdefiniertes Objekt, json_encode und json_decode auch kompetent. Passen Sie ein Objekt mit ähnlichem Inhalt an das obige Array an

class Me { public $name; public $age; public $friends; function __construct($name,$age,$friends) { 
$this->name=$name; $this->age=$age; $this->friends=$friends; } }
$me1=new Me('Byron',24,array('Casper','Frank','Vincent')); 
$me2=new Me('Casper',25,array('Byron','Frank','Vincent')); 
$me3=new Me('Frank',26,array('Casper','Byron','Vincent')); 
//创建一个复杂的数组,子元素是自定义类,自定义类中包含数组字段 
$array_me=array($me1,$me2,$me3); $json=json_encode($array_me);
//序列化对象数组为json字符串 echo $json.&#39;<br/>&#39;; $a=json_decode($json);
//将json字符串反序列化为对象数组 foreach ($a as $aa) { echo $aa->name.&#39;<br/>&#39;; }

php json与xml序列化/反序列化

Sie können sehen, dass das serialisierte Zeichenfolgenformat den Erwartungen sehr gut entspricht. Die Serialisierung/Deserialisierung komplexer Objekte im XML-Format ist auch für die Serialisierung/Deserialisierung komplexer Objekte geeignet

$me1=new Me(&#39;Byron&#39;,24,array(&#39;Casper&#39;,&#39;Frank&#39;,&#39;Vincent&#39;)); 
$me2=new Me(&#39;Casper&#39;,25,array(&#39;Byron&#39;,&#39;Frank&#39;,&#39;Vincent&#39;)); 
$me3=new Me(&#39;Frank&#39;,26,array(&#39;Casper&#39;,&#39;Byron&#39;,&#39;Vincent&#39;)); 
//创建一个复杂的数组,子元素是自定义类,自定义类中包含数组字段 
$array_me=array($me1,$me2,$me3); $xml=wddx_serialize_value($array_me);
//序列化对象数组为xml字符串 echo $xml.&#39;<br/>&#39;; 
$a=wddx_deserialize($xml);
//将xml字符串反序列化为对象数组 
foreach ($a as $aa) { echo $aa->name.&#39;<br/>&#39;; }

php json与xml序列化/反序列化

Die generierte XML-String-Struktur sieht folgendermaßen aus:

php json与xml序列化/反序列化

Schließlich bin ich neu in PHP. Es gibt viele Irrtümer in den Artikeln. Ich hoffe, dass jeder sie kritisieren und korrigieren kann.

Weitere Artikel zur PHP-JSON- und XML-Serialisierung/Deserialisierung finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn