軽量のデータ交換形式である JSON (JavaScript Object Notation) については誰もがよく知っているはずです。人間にとって読み書きしやすい。機械による解析と生成も簡単です。これは、JavaScript プログラミング言語、標準 ECMA-262 第 3 版 (1999 年 12 月) のサブセットに基づいています。 JSON は完全に言語に依存しないテキスト形式を使用しますが、C 言語ファミリー (C、C++、C#、Java、JavaScript、Perl、Python など) に似た規則も使用します。これらの特性により、JSON は理想的なデータ交換言語になります。
JSON は 2 つの構造から構築されます:
名前と値のペアのコレクション。さまざまな言語では、オブジェクト、レコード、構造体、辞書、ハッシュ テーブル、キー付きリスト、または連想配列として理解されます。 順序付けられた値のリスト。ほとんどの言語では、これは配列として理解されます。
PHPのシリアライズは変数をシリアライズして変数の型と構造を持った文字列式を返すことですが、どちらもデータ構造を文字列の形で表現していますが、両者の違いは何でしょうか?
JSON から始めて、簡単な例を見てみましょう。
表示結果:
リーリー 変数 test の{"Name":"Peter","Age":20} は 2 つの要素を持つオブジェクトです (PHP の配列のような感じです): 名前はピーター、年齢は 20 です。
もちろん、さらに複雑になる可能性があります:
表示結果:
リーリーこの例では、User 要素に名前と年齢が含まれています。
複数のUserを反映したい場合は配列を使用する必要があります。オブジェクトの「{}」とは異なり、配列は「[]」を使用します。
表示結果:
リーリー上記の簡単な例を通じて、いくつかの複雑なデータを文字列を介して転送できます。Ajax と組み合わせるとさらに便利になります。
PHP のシリアライズ関数の役割を見てみましょう。
表示結果:
リーリーこの結果は JSON よりも複雑に見えますが、実際にはいくつかのデータ型と構造を説明しています。
a:2:{s:7:"国";s:3:"アメリカ";s:3:"年齢";i:20;} を例として挙げます:
a:2 は 2 つの要素を持つ配列であることを示し、s:7:" Country";s:3:"USA"; は最初の要素であり、s:7 は 7 文字の文字列 (文字列) を持つことを示します。 、その後に続く i:20; も整数 (整数) 20 であると推測されます。
この例をもう一度見てください:
表示結果:
リーリーこの例からわかるように、シリアル化はデータの型と構造の両方を保存し、シリアル化解除後の変数は引き続き add() メソッドを使用できます。
では、PHP と JSON の間には何か関係があるのでしょうか? PHP に詳しい友人なら、PHP5.2.0 では JSON 拡張機能がデフォルトのコンポーネントとして設定されていることを知っているはずです。つまり、PHP で JSON 操作を実行でき、その関数は json_encode と json_decode です。 。
表示結果:
リーリーこの結果は例1のテスト値と同じです。 json_encode を使用してPHPの変数をJSON文字に変換し、式を出力します。
json_decodeの使い方を見てみましょう。
表示結果:
リーリーこれは、{"Name":"Peter","Age":20} が JSON のオブジェクトであることを確認しますが、json_decode で ASSOC パラメーターを True に設定することもできます。
表示結果:
リーリーさらに、JSON は Unicode 形式に基づいているため、中国語での操作の場合は UTF-8 形式に変換する必要があることに注意してください。
上記の例を通して、JSON と PHP の Serialize と json_encode については予備的に理解できたと思います。PHP、JavaScript、JSON、Ajax を組み合わせることで、強力なデータ インタラクション関数を完成させることができます。
に基づいています