ホームページ > 記事 > ウェブフロントエンド > jsonとjsonpの違いと使い方
json と jsonp の違いとさまざまな用途
JSON (JavaScript Object Notation) と JSONP (JSON with Padding) の間には 1 文字の違いしかありませんが、実際にはまったく同じものではありません。JSON はデータ交換形式であり、 JSONP は、開発者の創意工夫によって作成された非公式のクロスドメイン データ交換プロトコルです。最近人気のスパイ映画に例えると、JSON は地下組織が情報を記述して交換するために使用される「コード」であり、JSONP はコードで記述された情報を仲間に送信するために使用される接続方法です。もう 1 つは情報の送信方法であり、もう 1 つは両当事者が合意した情報の送信方法です。
JSON の利点: 1. プレーンテキストに基づいているため、クロスプラットフォームの送信が非常に簡単です。
2. Javascript がネイティブにサポートされており、ほとんどすべてのバックグラウンド言語がサポートされています。
3. 占有文字数が非常に少ない軽量のデータ形式です。 、特にインターネット送信に適しています ;
4. XML ほど明確ではありませんが、適切なインデントの後でも識別するのは簡単です
5. もちろん前提として、記述と解析が簡単です。それは、データ構造を知る必要があるということです。
もちろん、JSON にも欠点はありますが、著者の意見では、それらは実際には重要ではないため、個別に説明することはありません。
JSON の形式またはルール:
JSON は非常に簡単な方法でデータ構造を記述することができるため、XML で実行できることはすべて実行できるため、クロスプラットフォームという点では 2 つは完全に同等です。
1. JSON には、中括弧 {} と角括弧 [] の 2 つのデータ型記述子のみがあり、残りの英語のコロンはマッピング文字、英語のカンマは区切り文字、英語の二重引用符 "" は定義文字です。 2. 中括弧 {} は「さまざまなタイプの順序付けされていないキーと値のペア」のセットを記述するために使用され (各キーと値のペアは OOP 属性の記述として理解できます)、角括弧 [] は、 「同じタイプ」のセット「順序付けされたデータコレクション」(OOPに対応できる配列)。
3. 上記 2 つのセットに複数のサブ項目がある場合は、カンマで区切る必要があります。
4. キーと値のペアは英語のコロン: で区切られており、異なる言語の分析を容易にするためにキー名には英語の二重引用符 "" を追加することをお勧めします。
5. JSON 内で一般的に使用されるデータ型は、文字列、数値、ブール値、日付、null だけです。文字列は二重引用符で囲む必要があり、残りは使用されません。日付型は非常に特殊です。ここでは詳細には触れませんが、クライアントに日付による並べ替えの機能要件がない場合は、日付と時刻を文字列として直接渡すだけで、多くの手間が省けます。
// 描述一个人 var person = { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true }jsonp の生成プロセス:
1. よく知られている問題として、通常のファイルに対する Ajax 直接リクエストには、静的ページ、動的 Web ページ、Web サービスを問わず、クロスドメインの不正アクセスの問題があります。 、WCF、クロスドメインである限り、リクエストは許可されません
2. ただし、Web ページ上で js ファイルを呼び出す場合、それがクロスドメインであるかどうかには影響を受けないこともわかりました。また、「src」属性を持つすべてのタグには、3f1c4e4b6b16bbbd69b2ee476dc4f83a、a1f02c36ba31691bcfe87b2722de723b、d5ba1642137c3f32f4f4493ae923989c) などのクロスドメイン機能があることもわかりました。現段階では純粋な Web 側 (ActiveX コントロール、サーバー側プロキシ、将来の HTML5 の WebSocket など) を使用します。(カウントされていません) データへのクロスドメイン アクセスの可能性は 1 つだけあり、それは、クライアントの呼び出しとさらなる処理のために、データをリモート サーバー上の js 形式ファイルに変換します。
4. JSON と呼ばれるものがあることはすでに知っています。さらに優れているのは、JSON は複雑なデータを簡潔に記述できることです。また、js によってネイティブにサポートされているため、クライアントはこの形式のデータをほぼ希望どおりに処理できます
5. このようにして、ソリューションが準備され、Web クライアントは、クロスドメイン サーバー上で動的に生成された js 形式のファイルを呼び出します。 (通常は接尾辞として JSON を使用します) スクリプトを呼び出すのとまったく同じ方法で、サーバーが JSON ファイルを動的に生成する理由は、クライアントが必要とするデータをロードするためであることは明らかです。
6. クライアントが JSON ファイルの呼び出しに成功したら、残りは必要に応じてデータを処理して表示します。このリモート データの取得方法は AJAX によく似ていますが、実際には次のようになります。それは同じではありません。
7. クライアントがデータを使用しやすくするために、人々はそれを JSONP と呼ぶ非公式の送信プロトコルを徐々に形成してきました。このプロトコルの重要なポイントの 1 つは、ユーザーがサーバーにコールバック パラメーターを渡せるようにすることです。サーバーは、このコールバック パラメーターを関数名として使用して JSON データをラップし、クライアントが独自の関数をカスタマイズして返されたデータを自動的に処理できるようにします。
りー
以上がjsonとjsonpの違いと使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。