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() メソッドを使用できます。
json_decodeの使い方を見てみましょう。
stdClass オブジェクト( [Name] => Peter [Age] => 20 ) これは確かに、 {"Name":"Peter","Age":20} が JSON のオブジェクトであることを検証しますが、PHP Convert でも使用できます。それを配列に設定し、json_decode で ASSOC パラメーターを True に設定します。
読んでいただきありがとうございます。関連する詳細については PHP に注目してください。コンテンツ 中国語のウェブサイト (www.php.cn)!