JSON学習メモ

PHP中文网
リリース: 2016-05-16 19:03:39
オリジナル
860 人が閲覧しました

JSON が登場します

対話型ツールとして xmlHttpRequest コンポーネントを使用し、データ送信形式として XML を使用します。

[ XML ]
XML を送信形式として使用する利点:
1. 標準に準拠した統一形式
2. リモートで他のシステムと対話するのが簡単、データ共有がより便利です

欠点:
1. XML ファイル形式が巨大で、形式が複雑で、送信に帯域幅が消費されます
2.サーバーとクライアントは XML を解析するために多くのコードを必要とし、サーバー側とクライアント側のコードは両方とも非常に複雑になり、保守が困難になりました
3. クライアント側の異なるブラウザ間で XML を解析する方法が一貫していません。多くのコードを繰り返し記述する必要があります
4. サーバー側とクライアントでの XML の解析にはリソースと時間が消費されます

[ JSON ]
XML 形式に変換できますが、他の形式はありますか? JSON (JavaScript Object Notation) と呼ばれる軽量のデータがあります。

利点:
1。シンプルで読み書きが簡単、形式は圧縮されており、帯域幅をほとんど消費しません
2. この言語は解析が簡単で、クライアント側の JavaScript は eval() を通じて JSON データを簡単に読み取ることができます
3. をサポートします。 ActionScript、C、C#、ColdFusion、Java、JavaScript、Perl、PHP、Python、Ruby およびその他の言語を含む複数の言語 サーバー側の解析を容易にするサーバー側言語
4. PHP の世界では、PHP-JSON とPHP のシリアル化されたプログラムの直接呼び出しを容易にする JSON-PHP が登場し、クライアントのアクセスや抽出に便利な JSON 形式を直接生成できます。
さらに、PHP の PEAR クラスのサポートが提案されました。 (http://www.php.cn/)
5. JSON 形式はサーバーサイドコードで直接使用できるため、サーバーが大幅に簡素化されます。ターミナルとクライアントでのコード開発の量は少ないですが、完了したタスクは同じままであり、保守が簡単です

欠点:
1. XML 形式ほど普及して広く使用されておらず、XML ほど汎用性がありません
2。 Web サービスにおける JSON 形式の普及はまだ初期段階です

追記: Google の Ajax は JSON テンプレートを使用して作られていると言われています

JSON 定義
JSON (JavaScript Object Notation)読み書きが簡単で、マシンによる解析と生成も簡単な軽量のデータ交換形式です。これは、ECMA262 言語仕様 (第 3 版 1999-12) の JavaScript プログラミング言語のサブセットに基づいています。 JSON はプログラミング言語に依存しないテキスト形式を採用していますが、C に似た言語 (C、C++、C#、Java、JavaScript、Perl、Python などを含む) の習慣も使用しています。これらの特性が JSON を作ります。理想的なデータ交換フォーマットです。
JSON の構造は次の 2 つの点に基づいています

1. 「名前と値」のペアのコレクション。さまざまな言語では、オブジェクト、レコード、構造として理解されます。辞書 (辞書)、ハッシュ テーブル (ハッシュ テーブル)、キー付きリスト (キー付きリスト) など。
2. 値の順序付きリストは、ほとんどの言語で配列 (配列) として理解されます。
JSON の使用法:
JSON は、JavaScript オブジェクトを表す特定の文字列形式で始まります。このような形式の文字列を JavaScript 変数に代入すると、その変数はオブジェクト参照になり、このオブジェクトはその文字列から構築されます。少しわかりにくいと思われるため、例を使用して説明します。
ここでは、次の属性を持つ User オブジェクトを作成する必要があると仮定します。
User ID
Username
User Email
User オブジェクトを表すには、次の JSON フォームを使用できます。
JavaScript コード
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
この文字列を JavaScript 変数に代入すると、次のようになります。オブジェクトの任意のプロパティを直接使用します。
完全なコード:
JavaScript コード

<script> 
var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"}; 
alert(User.Name); 
</script>
ログイン後にコピー

実際の使用では、より複雑になる可能性があります。たとえば、FirstName と LastName が含まれるように、Name のより詳細な構造を定義します。 >JavaScript コード
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}
完全なコード:
JavaScript コード

<script> 
var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}; 
alert(User.Name.FirstName); 
</script>
ログイン後にコピー

ここで、ページの 1 つには単一のユーザー情報だけでなくユーザー リストが必要なので、ユーザーを作成する必要があります。リスト配列。
次のコードは、JSON を使用してこのユーザー リストを定義する方法を示しています:
JavaScript コード

[ 
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}, 
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"}, 
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"} 
]
ログイン後にコピー
完全なコード:

JavaScript コード

<script> 
var UserList = [ 
{&quot;UserID&quot;:11, &quot;Name&quot;:{&quot;FirstName&quot;:&quot;Truly&quot;,&quot;LastName&quot;:&quot;Zhu&quot;}, &quot;Email&quot;:&quot;zhuleipro◎hotmail.com&quot;}, 
{&quot;UserID&quot;:12, &quot;Name&quot;:{&quot;FirstName&quot;:&quot;Jeffrey&quot;,&quot;LastName&quot;:&quot;Richter&quot;}, &quot;Email&quot;:&quot;xxx◎xxx.com&quot;}, 
{&quot;UserID&quot;:13, &quot;Name&quot;:{&quot;FirstName&quot;:&quot;Scott&quot;,&quot;LastName&quot;:&quot;Gu&quot;}, &quot;Email&quot;:&quot;xxx2◎xxx2.com&quot;} 
]; 
alert(UserList[0].Name.FirstName); 
</script>
ログイン後にコピー
実際属性を引用する「.」に加えて、次のステートメントも使用できます:

JavaScript コード

コードをコピー コードは次のとおりです。

alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);
ログイン後にコピー

现在读者应该对JSON的使用有点认识了,归纳为以下几点:
对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串和数字的定义和C或Java基本一致。
小节:
本文通过一个实例演示,初步了解了JSON 的强大用途。可以归结如下:
JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
JSON 帮助分离了验证数据和逻辑。
JSON 帮助为 Web 应用程序提供了 Ajax 的本质。


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