JSONとJSONPの違いと使い方

14731 ワード

JSON(JavaScript Object Notation)とJSONP(JSON with Padding)はアルファベットの違いは1つしかありませんが、実は彼らはまったく同じことではありません.JSONはデータ交換フォーマットであり、JSONPは開発者の聡明な知恵によって創造された非官方跨域データインタラクティブプロトコルです.例えば、JSONは地下党が情報を書き、交換するための「暗号」であり、JSONPは暗号で書かれた情報を自分の同志に伝える際に使う接続方式である.見たか?1つは情報を記述するフォーマットであり、1つは情報伝達双方の約束の方法である.
JSONとは
JSONはテキストベースのデータ交換方式、またはデータ記述フォーマットと呼ばれる.
JSONの長所:
1、純粋なテキストに基づいて、プラットフォームにまたがる伝達は極めて簡単である.
2、Javascriptのオリジナルサポート、バックグラウンド言語のほとんどがサポートされている.
3、軽量レベルのデータフォーマット、占有文字数は極めて少なく、特にインターネットの伝達に適している.
4、可読性が強く、XMLほど一目瞭然ではないが、合理的に順次インデントした後も識別しやすい.
5、書きやすく、解析しやすい
JSONのフォーマットまたはルール:
JSONは非常に簡単な方法でデータ構造を記述することができ、XMLができることはすべてできるので、プラットフォームをまたぐ面では両者はまったく同じではありません.
1、JSONには2種類のデータ型記述子、括弧{}と角括弧[]しかなく、残りの英語のコロン:マッピング、英語のカンマ、区切り、英語の二重引用符""は定義子である.
2、括弧{}は、「異なるタイプの無秩序キー値ペアのセット」(各キー値ペアはOOPの属性記述として理解できる)のセットを記述するために使用され、角括弧[]は、「同じタイプの秩序化されたデータセット」(OOPの配列に対応可能)のセットを記述するために使用される.
3、上記の2つの集合に複数の子がある場合は、英語のカンマで区切ります.
4、キーの値は英語のコロンで区切られ、キー名には英語の二重引用符「」を付けることをお勧めします.
5、JSONの内部でよく使われるデータ型は文字列、数字、ブール、日付、nullのようなものにほかならない.文字列は二重引用符で引き起こさなければならない.残りは使わない.日付タイプは特殊だ.ここでは説明を展開しないが、クライアントが日付順にソートする機能が必要でなければ、日付時間を文字列として直接伝えればいい.多くの面倒を省くことができる.
JSON例:
//       
var person = {
    "Name": "Bob",
    "Age": 32,
    "Company": "IBM",
    "Engineer": true
}
//          
var personAge = person.Age;
//       
var members = [
    {
        "Name": "Bob",
        "Age": 32,
        "Company": "IBM",
        "Engineer": true
    },
    {
        "Name": "John",
        "Age": 20,
        "Company": "Oracle",
        "Engineer": false
    },
    {
        "Name": "Henry",
        "Age": 45,
        "Company": "Microsoft",
        "Engineer": false
    }
]
//     John      
var johnsCompany = members[1].Company;
//        
var conference = {
    "Conference": "Future Marketing",
    "Date": "2012-6-1",
    "Address": "Beijing",
    "Members":
    [
        {
            "Name": "Bob",
            "Age": 32,
            "Company": "IBM",
            "Engineer": true
        },
        {
            "Name": "John",
            "Age": 20,
            "Company": "Oracle",
            "Engineer": false
        },
        {
            "Name": "Henry",
            "Age": 45,
            "Company": "Microsoft",
            "Engineer": false
        }
    ]
}
//      Henry      
var henryIsAnEngineer = conference.Members[2].Engineer;

JSONPとは
1、よく知られている问题で、Ajaxは直接普通のファイルにドメインをまたいでアクセスする権限がない问题があることを要求して、あなたが静态のページ、ダイナミックなウェブページ、webサービス、WCFであることを気にしないでください、ドメインをまたいで要求するのでさえすれば、一律に许されません;
2、しかし、Webページでjsファイルを呼び出すと、ドメイン間の影響を受けないことが分かった(それだけでなく、「src」という属性を持つラベルは、