php jsonとxmlのシリアル化/逆シリアル化

高洛峰
リリース: 2023-03-04 22:36:02
オリジナル
1737 人が閲覧しました

オブジェクトのシリアル化と逆シリアル化は、Web 開発でよく使用されます。最も主流なのは、json 形式と xml 形式のシリアル化と逆シリアル化です。今日は、jsop の小さなデモを書きたかったのですが、php を使用できないことがわかりました。シリアル化の情報を確認してメモしました

PHP は、オブジェクトを json 形式でシリアル化/逆シリアル化するための json_encode 関数と json_decode 関数を提供します

$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas
ログイン後にコピー

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

シンプルな配列 XML 形式のシリアル化/逆シリアル化

PHP は、オブジェクトを XML 形式でシリアル化/逆シリアル化するための wddx_serialize_value 関数と wddx_deserialize 関数を提供します

$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas
ログイン後にコピー

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

HTMLトランスコードの関係で出力形式が変ですが、実際にシリアル化された文字列はこんな感じです

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

json 形式と比較すると、より多くのフィールドがあります。
複雑なオブジェクト json 形式のシリアル化/逆シリアル化 操作中に、処理するオブジェクトは単純な配列ではなく、カスタマイズされたオブジェクトの配列であることがよくあります。有能でもある。上記の配列と同様の内容を持つオブジェクトをカスタマイズします

class Me { public $name; public $age; public $friends; function __construct($name,$age,$friends) { 
$this->name=$name; $this->age=$age; $this->friends=$friends; } }
ログイン後にコピー
rreee

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

シリアル化された文字列形式が期待どおりであることがわかります。複雑なオブジェクトの XML 形式のシリアル化/逆シリアル化。同じ wddx_serialize_value 関数と wddx_deserialize 関数は、複雑なオブジェクトに対する XML 形式のシリアル化/逆シリアル化操作も可能です

$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序列化/反序列化

。 生成されたXML文字列構造はこんな感じです

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

最後に、私は PHP の初心者です。記事には多くの誤りがありますので、皆さんに批判して修正していただければ幸いです。

php json および xml のシリアル化/逆シリアル化に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート