ホームページ >バックエンド開発 >PHPチュートリアル >PHP シリアル化と JSON 解析
JSON (JavaScript Object Notation) は軽量のデータ交換形式です。人間にとって読み書きしやすい。機械による解析と生成も簡単です。これは、JavaScript プログラミング言語、標準 ECMA-262 第 3 版 (1999 年 12 月) のサブセットに基づいています。 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); Peter: 20
変数テストでは、{"Name":"Peter","Age":20} は 2 つの要素を持つオブジェクトです (PHP の配列のような感じです):
名前はピーター、年齢は 20 です。 もちろん、さらに複雑になる可能性があります。例 2:
var test = { " ユーザー " :{ " 名前 " : " ピーター " 、 " 年齢 " : 20 }、 " 会社 " : " FORD " };
document.write(test.User.Name + " : " + test.Company);
Peter: FORD
この例では、User 要素に Name と Age が含まれています。
複数のUserを反映したい場合は、オブジェクトの「{}」とは異なり、配列を使用する必要があります。
例 3:
var test = [
" : " 李明 " , " 年齢 " : 20 }, " 会社 " : " ベンツ " }
];
// または次のように使用します: document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"] );
表示結果:
Li Ming : Benz
上記の簡単な例を通じて、いくつかの複雑なデータを文字列を介して転送することができ、実際に Ajax と連携する方がはるかに便利です。
PHP のシリアライズ関数の役割を見てみましょう。例 4:
$arr = 配列
' Age ' => 20
),
' Li Ming ' >
結果を表示:
a : 2 : {s : 5 : "ピーター" ;a : 2 : {s : 7 : "国" ;s : 3 : "アメリカ" ;s : 3 : "年齢" ;i : 20 ;}s : 7 : " Li Ming " ;a : 2 : {s : 7 : " Country " ;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:
class test
{ var $var = 0;
function add(){
echo $var + 10;
}
$unserialize_var = new test;
$serialize_var = シリアル化 ( $unserialize_var );
echo $serialize_var = null ;
$unserialize_var -> 結果を表示します。
O : 4 : " test " : 1 : {s : 3 : " var " ;i : 0 ;}
10
アンシリアル化後に変数を保存できます。引き続き add() メソッドを使用します。
では、PHP と JSON の間には何か関係があるのでしょうか? PHP に詳しい友人なら、PHP5.2.0 では JSON 拡張機能がデフォルトのコンポーネントとして設定されていることを知っているはずです。つまり、PHP で JSON 操作を実行でき、その関数は json_encode です。 json_decode。
例 6:
$arr = array
(
sonencode = json_encode( r );
echo $jsonencode ;
{ " 名前 " : " ピーター " 、 " 年齢 " : 20 }
この結果は例 1 のテスト値と同じです。PHP の変数は json_encode を通じて JSON 文字に変換され、式 Mode を表現します。
json_decodeの使い方を見てみましょう。
例 7:
$var = ' {"名前":"ピーター","年齢":20} ' ;
$jsondecode = json_decode( $var )
stdClass Object ([Name] =>Peter [Age] =>20 )
これは、JSON では {"Name":"Peter","Age":20} がオブジェクトであることを検証しますが、 json_decode で ASSOC パラメータを True に設定することで、PHP の配列に変換することもできます。
例 8:
$var = ' {"Name":"Peter","Age":20} ' ;
results :
さらに、JSON は Unicode 形式に基づいているため、中国語の操作を実行するには、次のように変換する必要があることに注意してください。 UTF-8形式。
上記の例を通して、皆さんは JSON と PHP の Serialize と json_encode について予備的な理解ができたと思います。 PHP、JavaScript、JSON、Ajax を組み合わせることで、強力なデータ インタラクション関数を完成させることができます。
PHP JSON 関数: http://cn.php.net/manual/en/ref.json.php
JSON の概要:http://www.json.org/json-zh.html
例ネットユーザーより: http://www.only4.cn/archives/95