PHP シリアル化と JSON 解析の詳細な例

黄舟
リリース: 2016-12-14 10:15:54
オリジナル
1151 人が閲覧しました

JSON は、標準 ECMA-262 第 3 版 (1999 年 12 月) のサブセットである JavaScript プログラミング言語に基づいています。 JSON は完全に言語に依存しないテキスト形式を使用しますが、C 言語ファミリー (C、C++、C#、Java、JavaScript、Perl、Python など) に似た規則も使用します。これらの特性により、JSON は理想的なデータ交換言語になります。

JSON は 2 つの構造から構築されます:

名前と値のペアのコレクション。さまざまな言語では、オブジェクト、レコード、構造体、辞書、ハッシュ テーブル、キー付きリスト、または連想配列として理解されます。

値の順序付きリスト。ほとんどの言語では、これは配列として理解されます。

PHP のシリアル化は、変数をシリアル化し、変数の型と構造を含む文字列式を返すことです。
どちらも文字列の形式でデータ構造を具体化しているので、違いは何ですか。

JSON から始めて、簡単な例を見てみましょう。

例 1:

var test = {"Name":"Peter","Age":20}; document.write(test.Name + ": " + test.Age); 20

変数テストでは、{"Name":"Peter","Age":20} は 2 つの要素を持つオブジェクトです (PHP の配列のような感じです):

名前はピーター、年齢は 20 です。


もちろん、さらに複雑になる可能性があります。

例 2:

var test = {"ユーザー":{"名前":"ピーター","年齢":20},"会社":"FORD"}; ": " + test.Company); 表示結果:

Peter: FORD この例では、User 要素に Name と Age が含まれています。

複数のUserを反映したい場合は、オブジェクトの「{}」とは異なり、配列を使用する必要があります。

JSON 解析例 3:

var test = [ Name":"Li Ming","Age":20},"Company":"Benz"} ]; document.write(test[1].User.Name + ": " + test[1].Company); //または次のように使用します: document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"] ); JSON 解析の表示結果:

Li Ming: Benz

上記の簡単な例を通じて、いくつかの複雑なデータを文字列を介して転送できますが、Ajax と組み合わせるとさらに便利になります。

PHP のシリアライズ関数の役割を見てみましょう。


JSON 解析例 4:

$arr = array ( ), 'Li Ming'=> array ( ' Country'=>'CHINA', 'Age'=>21 ' Peter";a:2: {s:7:"国";s:3:"アメリカ";s:3:"年齢";i:20;}s:7:"李明";a:2: {s:7:"国" ";s:5:"CHINA";s:3:"Age";i:21;}} この結果は JSON よりも複雑に見えますが、実際は非常に単純です。この結果は、いくつかのデータ型と構造を示しています。

a:2:{s:7:"country";s:3:"USA";s:3:"Age";i:20;} を例として挙げます:

a:2 は 2 つあることを示しています要素の配列 (配列)、 s:7:"country";s:3:"USA"; は最初の要素で、 s:7 はこれが 7 文字の文字列であることを示し、その後に i:20 が続きます。それは整数(整数)20であると推測されます。


この例をもう一度見てみましょう、

例 5:

クラステスト { var $var = 0; 関数 add() { echo $var+10; } } $unserialize_var = シリアル化($unserialize_var); unserialize($serialize_var); $unserialize_var->add(); 結果の表示:

O:4:"test":1:{s:3:"var";i:0;}

10

からこの例から、シリアル化によってデータの型と構造の両方が保存されることがわかります。シリアル化を解除した後も、変数は add() メソッドを使用できます。

では、PHP と JSON の間には何か関係があるのでしょうか? PHP に詳しい友人なら、PHP5.2.0 では JSON 拡張機能がデフォルトのコンポーネントとして設定されていることを知っているはずです。つまり、PHP で JSON 操作を実行でき、その関数は json_encode です。 json_decode。

{"Name":"Peter","Age":20}

この結果は例 1 のテスト値と同じです。 json_encode を使用して PHP の変数を JSON 文字に変換し、表現。

json_decodeの使い方を見てみましょう。

例 7:

$var = '{"名前":"ピーター","年齢":20}'; $jsondecode = json_decode($jsondecode); 表示結果:


stdClass オブジェクト( [Name] => Peter [Age] => 20 ) これは確かに、 {"Name":"Peter","Age":20} が JSON のオブジェクトであることを検証しますが、PHP Convert でも使用できます。それを配列に設定し、json_decode で ASSOC パラメーターを True に設定します。

例8:

$var = '{"名前":"ピーター","年齢":20}'; $jsondecode = json_decode($var,true); 表示結果:

配列( [名前] => Peter [年齢] => 20 ) さらに、JSON は Unicode 形式に基づいているため、中国語で操作する場合は UTF-8 形式に変換する必要があることに注意してください。上記の例を通じて、誰もが JSON と PHP の Serialize と json_encode について予備的に理解できたと思います。PHP、JavaScript、JSON、Ajax を組み合わせることで、強力なデータ インタラクション関数を完成させることができます


読んでいただきありがとうございます。関連する詳細については PHP に注目してください。コンテンツ 中国語のウェブサイト (www.php.cn)!

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