Jsonはjsオブジェクトです。
-----
簡単に言うと、JSON は JavaScript オブジェクトで表されるデータのセットを string に変換することができ、これを 関数 間で、または非同期的に簡単に渡すことができます アプリケーションは Web から文字列を渡しますクライアントからサーバー側プログラムへ。この文字列は少し奇妙に見えますが (後でいくつかの例を参照します)、JavaScript はこれを簡単に解釈し、JSON は名前と値のペアよりも複雑な構造を表現できます。たとえば、キーと値の単純なリストではなく、配列や複雑なオブジェクトを表すことができます。
単純な JSON の例
最も単純な形式では、名前と値のペアは次のような JSON で表すことができます:
{ "firstName": "Brett" }
この例は非常に基本的なもので、実際には同等のプレーン テキストよりも優れています。名前と値のペアは、
firstName=Brett
のようにより多くのスペースを占有しますが、複数の名前と値のペアをつなぎ合わせると、JSON が真価を発揮します。まず、次のような複数の名前と値のペアを含むレコードを作成できます:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }
構文的には、これは名前と値のペアに比べて大きな利点ではありませんが、この場合は JSON の方が使いやすく、読みやすいです。たとえば、上記の 3 つの値が同じレコードの一部であることが明らかになり、中括弧によって値が何らかの関連性を示します。
値の配列
一連の値を表す必要がある場合、JSON は読みやすさを向上させるだけでなく、複雑さを軽減することもできます。たとえば、人の名前のリストを表現したいとします。 XML では、多くの開始タグと終了タグが必要です。一般的な名前と値のペア (このシリーズの以前の記事で説明したものなど) を使用する場合は、独自のデータ形式を使用するか、キー名を person1 の形式に変更します。 -ファーストネーム。
JSON を使用する場合は、複数のレコードを中括弧でグループ化するだけです:
{ "people": [
{ "firstName": "Brett", "lastName": "McLaughlin", " email": "brett@ newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName" : "Elliotte", " lastName":"Harold", "email": "elharo@macfaq.com" }
]}
これを理解するのは難しくありません。この例では、 people という 変数 が 1 つだけあり、その値は 3 つのエントリを含む配列であり、各エントリは名、姓、電子メール アドレスを含む個人のレコードです。上の例は、括弧を使用してレコードを単一の値に結合する方法を示しています。もちろん、複数の値 (それぞれに複数のレコードが含まれる) は同じ構文を使用して表現できます:
{ "programmers": [
{ "firstName": "Brett", "lastName": "McLaughlin", "email ": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "アシモフ", "ジャンル": "サイエンス フィクション" },
{ "名": "タッド", "姓": "ウィリアムズ", "ジャンル": "ファンタジー" },
{ "名": " Frank", "lastName": "Peretti", "genre": "キリスト教小説" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
ここで最も注目すべき点は、 、複数の値を表すことができ、各値には複数の値が含まれます。ただし、レコード内の実際の名前と値のペアは、メイン エントリ (プログラマ、作成者、ミュージシャン) ごとに異なる場合があることにも注意してください。 JSON は完全に動的であるため、JSON 構造の途中でデータの表現方法を変更できます。
JSON 形式のデータを操作するときに従う必要がある事前定義された制約はありません。したがって、同じデータ構造内でデータの表現方法を変更することができ、同じものを異なる方法で表現することもできます。
JavaScript での JSON の使用
JSON 形式をマスターすれば、JavaScript での使用は簡単です。 JSON はネイティブ JavaScript 形式です。つまり、JavaScript で JSON データを処理するために特別な API やツールキットは必要ありません。
JSON データを変数に割り当てる
たとえば、新しい JavaScript 変数を作成し、それに JSON 形式のデータ文字列を直接割り当てることができます:
var people =
{ "programmers": [
{ "firstName": " Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason @ servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "アイザック", "lastName": "アシモフ", "genre": "SF" },
{ "firstName": "Tad", "lastName": "Williams", "genre" : "ファンタジー" },
{ "名": "フランク", "姓": "ペレッティ", "ジャンル": "キリスト教小説" }
],
"ミュージシャン": [
{ "名" ": "エリック", "姓": "クラプトン", "楽器": "ギター" },
{ "名": "セルゲイ", "姓": "ラフマニノフ", "楽器": "ピアノ" }
]
}
これは非常に簡単です。先ほど見た JSON 形式でデータが含まれています。ただし、データにアクセスする方法がまだ明らかになっていないため、これでは十分ではありません。
データへのアクセス
明らかではないかもしれませんが、上記の長い文字列は実際には単なる配列であり、JavaScript 変数に入れることでこの配列に簡単にアクセスできます。実際、配列要素を表すにはドット表記を使用するだけです。したがって、プログラマ リストの最初のエントリの姓にアクセスするには、JavaScript で次のコードを使用するだけです:
people.programmers[0].lastName;
配列 indexes はゼロベースであることに注意してください。したがって、このコード行は最初に people 変数のデータにアクセスし、次に、programmers というエントリに移動し、次に最初のレコード ([0]) に移動し、最後に lastName キーの値にアクセスします。結果は文字列値「McLaughlin」になります。
同じ変数を使用した例をいくつか示します。
people.authors[1].genre // 値は「ファンタジー」です
people.musicians[3].lastName // これは 4 番目のエントリを指します
、1 つもありません
people.programmers.[2 ].firstName // 値は "Elliotte" です
この構文を使用すると、追加の JavaScript ツールキットや API を使用せずに、任意の JSON 形式のデータを処理できます。
JSON データを変更する
ピリオドと括弧を使用してデータにアクセスできるのと同じように、同じ方法でデータを簡単に変更することもできます:
people.musicians[1].lastName = "Rachmaninov";
文字列を次のように変換します。 JavaScript オブジェクトの後、次のように変数内のデータを変更できます。
文字列に変換します
もちろん、オブジェクトをこの記事で説明したテキスト形式に簡単に変換できない場合は、すべてのデータ変更はほとんど意味がありません。この変換も JavaScript では簡単です:
String newJSONtext = people.toJSONString();
それだけです!これで、Ajax アプリケーションのリクエスト文字列など、どこでも使用できるテキスト文字列が完成しました。
さらに重要なのは、あらゆる JavaScript オブジェクトを JSON テキストに変換できることです。元々 JSON 文字列が割り当てられていた変数を扱えるだけではありません。 myObject という名前のオブジェクトを変換するには、同じ形式のコマンドを実行するだけです:
String myObjectInJSON = myObject.toJSONString();
これが、JSON とこのシリーズで説明する他のデータ形式の最大の違いです。 JSON を使用する場合、簡単な関数を呼び出すだけで、すぐに使用できるフォーマット済みのデータを取得できます。他のデータ形式の場合は、生データとフォーマット済みデータの間の変換が必要です。ドキュメント オブジェクト モデル (独自のデータ構造をテキストに変換する関数を提供する) のような API を使用する場合でも、API を学習し、ネイティブ JavaScript オブジェクトと構文を使用する代わりに API のオブジェクトを使用する必要があります。
要するに、大量の JavaScript オブジェクトを扱う場合、リクエストでサーバー側プログラムに送信できる形式にデータを簡単に変換できるように、JSON がほぼ確実に良い選択であるということです。
結論
このシリーズでは、データ形式について多くの時間を費やして議論してきました。その主な理由は、ほぼすべての非同期アプリケーションが最終的にデータを処理することになるからです。あらゆる種類のデータを送受信するためのさまざまなツールやテクニックを習得し、それぞれの データ タイプ に最適な方法でそれらを使用すると、Ajax の習熟度が高まります。 XML とプレーン テキストをマスターすることに加えて、JavaScript でより複雑なデータ構造を処理できるように JSON もマスターします。
このシリーズの次の記事では、データの送信以外の問題について説明し、サーバー側プログラムが JSON 形式でデータを受信して処理する方法について詳しく説明します。また、サーバー側プログラムがスクリプトおよびサーバー側コンポーネント間でデータを JSON 形式で送り返す方法についても説明し、XML、プレーン テキスト、および JSON の要求と応答を混在させることができます。これにより、これらすべてのツールをほぼあらゆる組み合わせで使用できる柔軟性が高まります。
以上がjsonの簡単な理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。