Maison > Article > développement back-end > Sérialisation/désérialisation PHP json et XML
La sérialisation et la désérialisation d'objets sont souvent utilisées dans le développement Web. Les plus courantes sont la sérialisation et la désérialisation au format json et xml. Aujourd'hui, je veux écrire une petite démo jsop, il s'avère. que je ne sais pas comment utiliser la sérialisation php. J'ai vérifié les informations et pris une note. La sérialisation/désérialisation au format json de tableau simple
php fournit les fonctions json_encode
et json_decode
pour effectuer le traitement des objets. opération de sérialisation/désérialisation du format
$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Casper','Frank','Vincent')); $json=json_encode($data);//将数组序列化为json字符串 echo $json.'<br/>'; $array_json= json_decode($json);//将json字符串反序列化为数组 while(list($key,$value)=each($array_json)){ if(!is_array($value)){ echo "$key: $value<br/>"; }else{ echo "$key: "; foreach ($value as $current) { echo "$current  "; } echo '<br/>'; } }
Sérialisation/désérialisation du format XML de tableau simple
php fournit wddx_serialize_value
et wddx_deserialize
La fonction effectue la sérialisation/désérialisation au format XML opérations de désérialisation sur les objets
$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Casper','Frank','Vincent')); $xml=wddx_serialize_value($data);//把数组序列化为xml字符串 echo $xml.'<br/>'; $array_xml=wddx_deserialize($xml);//把xml字符串反序列化为数组 while(list($key,$value)=each($array_xml)){ if(!is_array($value)){ echo "$key: $value<br/>"; }else{ echo "$key: "; foreach ($value as $current) { echo "$current  "; } echo '<br/>'; } }
Bien que le format de sortie soit étrange en raison du transcodage HTML, la chaîne sérialisée est en fait comme ceci
Par rapport au format json, il y a beaucoup plus de champs
Sérialisation/désérialisation d'objets complexes au format json Souvent, lorsque nous opérons, l'objet traité n'est pas un simple tableau, mais un tableau de nos objets personnalisés. 🎜> et json_encode
en sont également capables. Personnalisez un objet avec un contenu similaire au tableau ci-dessus json_decode
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.'<br/>'; $a=json_decode($json);//将json字符串反序列化为对象数组 foreach ($a as $aa) { echo $aa->name.'<br/>'; }Vous pouvez voir que le format de chaîne sérialisée est très conforme aux attentes. Sérialisation/désérialisation au format XML d'objets complexes. Les fonctions wddx_serialize_value et wddx_deserialize sont également capables d'effectuer des opérations de sérialisation/désérialisation au format XML sur des objets complexes. Utilisez l'objet tout à l'heure comme exemple
$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); $xml=wddx_serialize_value($array_me);//序列化对象数组为xml字符串 echo $xml.'<br/>'; $a=wddx_deserialize($xml);//将xml字符串反序列化为对象数组 foreach ($a as $aa) { echo $aa->name.'<br/>'; }
La structure de chaîne XML générée est comme ceci
Enfin, je suis un débutant en PHP. Il y a de nombreuses erreurs dans l'article, j'espère que tout le monde me critiquera et me corrigera.
Programmation PHP de l'entrée à la maîtrise
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!