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データベースのパスワードを忘れた場合の解決策
現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...
Web ページの読み込み速度は、Web サイトの品質を評価するための重要な指標です。その理由は、ほと...
JSON 形式のフィールドは、MySQL 5.7 で追加された新しい属性ですが、基本的には文字列とし...
序文以前、MySQL 5.6 をインストールしました。3 か月後、開発者から MySQL で JSO...
目次プロトタイプチェーン図プロトタイピングに必須の知識プロトタイププロパティ(プロトタイプを表示) ...
HTML はプレゼンテーションからコンテンツへの移行を試みており、コンテンツの意味(HTML) とプ...
ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...
テーブルに table-layer:fixed スタイルを設定し、テーブル内の行が結合されていること...
この記事は、MySQL 8.0.12解凍版のインストールグラフィックチュートリアルを記録しています。...
Docker ダウンロード アドレス: http://get.daocloud.io/#instal...
Nginx ngx_http_image_filter_module モジュール (nginx バ...
コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...
Nginx の主な設定ファイルは nginx.conf で、グローバル ブロック、イベント ブロック...
Tomcatはプロジェクトにアクセスします。通常はIP + ポート + プロジェクト名です。 Ngi...
序文プロセス管理の役割:サーバーの健全性状態を判定する: プロセスの状態 (メモリ、CPU 占有率な...