JSONとは何ですか?何に使用されますか?質問する

JSONとは何ですか?何に使用されますか?質問する

Wikipedia で調べたり、Google で検索したり、公式ドキュメントを読んだりしましたが、JSON が何であるか、なぜそれを使用するのかをまだ完全に理解できていません。

私はしばらくの間、PHP、MySQL、JavaScript / HTML を使用してアプリケーションを構築してきましたが、JSON によって作業が楽になったり、コードやユーザー インターフェイスが改善されたりするのであれば、ぜひ知りたいと思います。簡潔な説明は何でしょうか。

ベストアンサー1

JSON (JavaScript Object Notation) は、データ交換に使用される軽量フォーマットです。JavaScript言語のサブセット (JavaScript でオブジェクトを構築する方法) に基づいています。MDNに記載されているただし、一部の JavaScript は JSON ではなく、一部の JSON は JavaScript ではありません。

これが使用される例としては、Webサービスの応答があります。昔は、WebサービスはXMLを主なデータ形式として使用してデータを送信していましたが、JSONが登場して以来(JSON形式はRFC 4627によるダグラス・クロックフォード)は、はるかに軽量であるため、好まれるフォーマットとなっています。

詳細は公式ウェブサイトをご覧くださいJSON ウェブサイト

JSON は次の 2 つの構造に基づいて構築されます。

  • 名前と値のペアのコレクション。さまざまな言語で、これはオブジェクト、レコード、構造体、辞書、ハッシュ テーブル、キー付きリスト、または連想配列として実現されます。
  • 順序付けられた値のリスト。ほとんどの言語では、これは配列、ベクトル、リスト、またはシーケンスとして実現されます。

JSON構造



JSON オブジェクト図

JSON配列図

JSON 値図

JSON 文字列図

JSON 数値図

JSON データの例を次に示します。

{
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": 10021
     },
     "phoneNumbers": [
         "212 555-1234",
         "646 555-4567"
     ]
 }

JavaScript での JSON

JSON (JavaScript の場合) は文字列です。

多くの人は、すべての JavaScript オブジェクトが JSON であり、JSON は JavaScript オブジェクトであると想定します。これは誤りです。

JavaScript では、var x = {x:y}JSON ではなく、これはJavaScript オブジェクトです。この 2 つは同じものではありません。JSON に相当するもの (JavaScript 言語で表現) は ですvar x = '{"x":"y"}'。は、それ自体がオブジェクトではなく、文字列x型のオブジェクトです。これを本格的な JavaScript オブジェクトに変換するには、まずこれを解析する必要があります。はオブジェクトになりましたが、これはもはや JSON ではありません。var x = JSON.parse('{"x":"y"}');x

見るJavaScript オブジェクトと JSON


JSONとJavaScriptを扱う場合、コールバックで返された結果を関数で評価したくなるかもしれませんevalが、JSONでは有効だがJavaScriptでは有効でない2つの文字(U+2028とU+2029)があるため、これは推奨されません(詳細については、ここ)。

したがって、評価する前にJSONが有効かどうかをチェックするCrockfordのスクリプトを常に使用する必要があります。スクリプトの説明へのリンクはここそしてここには直接リンクJavaScriptファイルに。最近の主要ブラウザはすべて独自の実装このために。

JSON パーサーの使用方法の例 (上記のコード スニペットの JSON を使用):

// The callback function that will be executed once data is received from the server
var callback = function (result) {
    var johnny = JSON.parse(result);
    // Now, the variable 'johnny' is an object that contains all of the properties
    //from the above code snippet (the JSON example)
    alert(johnny.firstName + ' ' + johnny.lastName); // Will alert 'John Smith'
};

JSON パーサーには、もう 1 つの非常に便利なメソッドも用意されています。このメソッドは、JavaScript オブジェクトをパラメーターとして受け入れ、JSON 形式の文字列を出力します。これは、データをサーバーに送り返すstringify場合に便利です。

var anObject = {name: "Andreas", surname : "Grech", age : 20};
var jsonFormat = JSON.stringify(anObject);
// The above method will output this: {"name":"Andreas","surname":"Grech","age":20}

上記の2つのメソッド(parseおよびstringify)は、2番目のパラメータも受け取ります。これは、最終結果のすべてのレベルのすべてのキーと値に対して呼び出される関数であり、各値は入力した関数の結果に置き換えられます。(これについての詳細はここ

ちなみに、JSONはJavaScriptだけのものだと思っている人は、この郵便受けそれはそうではないことを説明し、確認します。


参考文献

おすすめ記事