1. ホーム
  2. json

[解決済み] JSONとJSONPの違いは何ですか?

2022-02-27 02:08:37

質問

フォーマット、ファイルタイプ、そして実用性?

解決方法は?

JSONPとは、JSONにパディングを施したものです。つまり、先頭に文字列を置き、その周りを括弧で囲むのです。例えば

//JSON
{"name":"stackoverflow","id":5}
//JSONP
func({"name":"stackoverflow","id":5});

その結果、JSONをスクリプトファイルとして読み込むことができるようになりました。もし以前に func この関数は、スクリプトファイルの読み込みが完了すると、JSONデータを1つの引数として呼び出されます。これは通常、JSONデータによるクロスサイトAJAXを可能にするために使用されます。example.comが上記のJSONPの例のようなJSONファイルを提供していることを知っている場合、example.comドメインにいない場合でも、このようなコードを使って取得することが可能です。

function func(json){
  alert(json.name);
}
var elm = document.createElement("script");
elm.setAttribute("type", "text/javascript");
elm.src = "http://example.com/jsonp";
document.body.appendChild(elm);