1. JSONとは何かJSON の概念は非常にシンプルです。JSON は、JavaScript 構文のサブセット、つまり配列とオブジェクトの表現に基づいた軽量のデータ形式です。 JavaScript 構文が使用されるため、JSON 定義を JavaScript ファイルに含めて、XML ベースの言語による追加の解析なしでアクセスできます。ただし、JSON を使用する前に、JavaScript の配列とオブジェクトリテラルの特殊な構文を理解することが重要です。 1.1 配列リテラル配列リテラルは、角括弧で囲まれたコンマ区切りの JavaScript 値のセットです。例: var aNames=["hello", 12, true , null]; 1.2 オブジェクトリテラルオブジェクトリテラルは、2 つの中括弧で囲むことによって定義されます。中括弧内に任意の数の名前と値のペアを配置して、書式文字列の値を定義することができます。最後の行を除き、各名前と値のペアの後にはコンマを続ける必要があります (これは、Perl の連想配列の定義に似ています)。例: var oCar = { "色": "赤", 「ドア」: 4, 「有料」: true }; 1.3 混合リテラルオブジェクトと配列リテラルを混在させて、オブジェクトの配列、または配列を含むオブジェクトを作成できます。例えば: {コメント:[ { id:1, 著者:"someone1", URL:"http://someone1.x2design.net", 内容:「こんにちは」 }, { id:2, 著者:"someone2", URL:"http://someone2.x2design.net", 内容:「こんにちは」 }, { id:3, 著者:"someone3", URL:"http://someone3.x2design.net", 内容:「こんにちは」 } ]}; 1.4 JSON構文Ajax アプリケーションでは、サーバーが JavaScript ステートメントを直接生成し、クライアントが eval メソッドを直接使用してオブジェクトを取得するため、XML の解析によるパフォーマンスの低下が排除されます。 同時に、JavaScript 通信でデータ形式として JSON を使用する利点は、データの値をすぐに取得できるため、そこに含まれるデータに高速にアクセスできることです。 var oCarInfo = eval("(" + sJSON + ")"); 覚えておいてください: 中括弧も JavaScript のステートメントです。パーサーが中括弧がステートメントではなくオブジェクトを表していることを認識する唯一の方法は、中括弧を囲む括弧 (コードがステートメントではなく式であることを示すために使用されます) を見つけることです。 1.5 JSONエンコードとデコードCorockford は、JSON リソースの一部として、JSON および Javascript オブジェクトを直接デコードおよびエンコードできるツールを開発しました。このツールのソースコードは、https://github.com/douglascrockford/JSON-js からダウンロードできます。 上で述べたように、 eval() の使用には固有の欠陥がいくつかあります。これは、JSON だけでなく、渡されたすべての JavaScript コードを評価するように設計されています。したがって、エンタープライズレベルの Web アプリケーション開発においては、セキュリティ上の大きなリスクが生じます。この問題を解決するには、JSON コードを Javascript に変換するだけのパーサーである JSON.parse() メソッドを使用できます。例えば: var oObject = JSON.parse(sJSON); また、Javascript オブジェクトを JSON 文字列 (データ転送に使用) に変換するためのツールも提供します (Javascript にはこれに対する組み込みサポートはありません)。オブジェクトを JSON.Stringify() メソッドに渡すだけです。次の例を見てください。 var oCar = 新しいオブジェクト(); oCar.ドア = 4; oCar.color = "青"; oCar.year = 1995; oCar.drivers = 新しい配列("Penny", "Dan", "Kris"); document.write(JSON.stringify(oCar)); このコードは次のような JSON 文字列を出力します。 {"ドア" : 4、"色" : "青"、"年" :1995、"運転手" : ["ペニー"、"ダン"、"クリス"]} 2. JSON と XML上で述べたように、JSON が XML よりも優れている大きな利点の 1 つは、JSON の方がはるかにシンプルであることです。 XML データ表現の例を参照してください。 XML 表現の使用: <コメント> <コメント> <id>1</id> <author>誰か1</author> <url>http://someone1.x2design.net</url> <content>こんにちは</content> </コメント> <コメント> <id>2</id> <author>誰か2</author> <url>http://someone2.x2design.net</url> <content>誰か1</content> </コメント> <コメント> <id>3</id> <author>誰か3</author> <url>http://someone3.x2design.net</url> <content>こんにちは</content> </コメント> </コメント> JSON 表現の使用: {コメント:[ { id:1, 著者:"someone1", URL:"http://someone1.x2design.net", 内容:「こんにちは」 }, { id:2, 著者:"someone2", URL:"http://someone2.x2design.net", 内容:「こんにちは」 }, { id:3, 著者:"someone3", URL:"http://someone3.x2design.net", 内容:「こんにちは」 } ]}; 多くの冗長な情報が欠落していることに気づくのは簡単です。終了タグを開始タグと一致させる必要がないため、同じ情報を送信するために必要なバイト数が大幅に削減されます。創設者のコーロックフォード氏はこれを「XML のダイエット プラン」と呼んでいます。 XML と比較した JSON 形式のデータの欠点は、素人にとって読みにくいことです。もちろん、データ交換形式は肉眼で見ることを意図したものではないという見方もあります。データがツールによって作成され、解析される場合、そのデータが人間が読めるものである必要はまったくありません。要するに、JSON ツールが利用可能だということです。 3. サーバーサイドJSONツールjava: Douglas Crock ford によって開発された java JSON ツールは、https://github.com/stleary/JSON-java からダウンロードでき、JSP で使用できます。 4. JSONの長所と短所JSON は、XML 解析によって生じるパフォーマンスと互換性の問題を軽減するだけでなく、JavaScript でも非常に使いやすいです。配列をトラバースしてオブジェクトのプロパティにアクセスすることで、データを簡単に取得できます。また、読み取り可能で、基本的に構造化データの特性を備えています。これは非常に良い方法だと言わざるを得ません。実際、Google マップはデータの転送に XML ではなく JSON を使用しています。 JSON のもう 1 つの利点は、クロスドメイン実行可能性です。たとえば、www.xxx.com の Web ページで JSON を使用することは完全に可能であり、ドメイン間で情報を送信できます。ただし、XMLHttpRequest を使用すると、Javascript の内部セキュリティの性質によって制限されるクロスドメイン情報を取得できません。 JSON は見た目が美しいですが、XML を完全に置き換えることができますか?これは事実ではありません。その理由は、XML の強みである普遍性にあります。サーバーに文法的に正しい JavaScript コードを生成させることは簡単ではありません。これは主に、サーバー側とクライアント側に異なる開発者がいる大規模なシステムで発生します。オブジェクトの形式を調整する必要があり、簡単にエラーが発生する可能性があります。
このページを更新するには js を使用します: 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: 2015-2016年に主流となるインタラクティブ体験のトレンド
>>: MySQLデータベースのパスワードを忘れた場合の解決策
国内市場ではIE6~7のサポートに対する一定の需要がまだありますが、フロントエンド開発者として、私た...
Tencent QQのホームページがリニューアルされ、Webフロントエンド開発がますます注目を集めて...
この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...
目次1. ドラッグ効果の例2. CSS実装の原則3. CSS実装の詳細4. CSSレイアウト1. 固...
IDEA は Java で最も一般的に使用されている開発ツールであり、Docker は最も人気のある...
状況の説明:今日、MySQL データベースのスレーブ ノード ホストにログインしたところ、/var/...
Ubuntu 18.04では参考までにmysql 5.7をインストールします。具体的な内容は以下のと...
1. 元のmariadbを削除します。削除しないとmysqlをインストールできません。 mariad...
序文:私はずっと、SQL 文がどのように、どのような順序で実行されるのかを知りたいと思っていました。...
目次ピッカーコンポーネントとはピッカーコンポーネントの問題解決オプションの説明解決ディレクトリ部門P...
ザビックス2019/10/12 チェンシン参照するhttps://www.zabbix.com/do...
MySQLユーザー権限を表示する2つの方法を紹介します1. MySQL grantsコマンドを使用す...
1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...
目次前提条件使用効果コミット前ミューテーション効果コミットミューテーション効果コミットレイアウト効果...
フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...