JSON (JavaScript Object Notation、JS Object Notation) は軽量のデータ交換形式で、サーバーが Web ページにデータを渡すためによく使用されます。 XML と同様に、JSON はプレーンテキストベースのデータ形式です。 Json ファイルのファイルサフィックスは JSONが登場JSON が登場する前は、データの転送には XML を使用していました。 XML はプレーンテキスト形式なので、インターネット経由でデータを交換するのに適しています。 XML 自体は複雑ではありませんが、DTD、XSD、XPath、XSLT などの複雑な仕様が多数あるため、一般的なソフトウェア開発者は XML に遭遇すると圧倒されてしまいます。結局、数か月間一生懸命勉強しても、XML 仕様を理解できないことに誰もが気付きます。 ついに、2002 年のある日、ダグラス クロックフォードは、長い間複数の巨大ソフトウェア企業に騙され、窮地に陥っていたソフトウェア エンジニアを救うために、超軽量のデータ交換形式である JSON を発明しました。 JSON は非常にシンプルなため、Web の世界で急速に普及し、ECMA 標準になりました。ほぼすべてのプログラミング言語には JSON を解析するためのライブラリがあり、JavaScript には JSON 解析が組み込まれているため、JavaScript では JSON を直接使用できます。 JSON構造Json には、 Json オブジェクトと Json 配列という 2 つの基本構造があります。 Json オブジェクトと Json 配列の組み合わせにより、さまざまな複雑な構造を表現できます。 JSONオブジェクトオブジェクト構造は キーは文字列型であり、二重引用符で囲む必要があります。値は、文字列、数値、オブジェクト、配列などのデータ型にすることができます。例えば、人物オブジェクトには名前、パスワード、年齢などの情報が含まれており、JSON表現は次のようになります。 { "pname":"張三", "パスワード":"123456", 「ページ」:40 } JSON オブジェクトは中括弧内に格納されます。 JavaScript と同様に、オブジェクトは複数のキー/値のペアを保持できます。 Json オブジェクトと JavaScript オブジェクトJavaScript では、文字列、数値、配列、日付などすべてがオブジェクトです。 JavaScript では、オブジェクトはプロパティとメソッドを持つデータです。 通常参照される Json オブジェクトは、Json 形式の JavaScript オブジェクト、または Json データ構造要件に準拠した JavaScript オブジェクトです。
JSONをJavaScriptオブジェクトに変換するJSON配列配列構造は Json 配列の要素タイプは矛盾する場合があります。たとえば、item1 は文字列タイプ、item2 は数値タイプ、item3 はオブジェクトタイプである可能性があります。配列の最後の要素の後にコンマを続けることはできません。 複雑な配列型ここでは、3 つのオブジェクトを含む配列を作成します。 1 つ目は HTML オブジェクトで、これも 5 つの要素を含む配列です。 2 番目は、4 つの要素を含む配列である JavaScript オブジェクトです。 3 番目は Server オブジェクトで、これも 3 つの要素を含む配列です。 複雑なオブジェクト配列の組み合わせ上記の 2 種類の (オブジェクト、配列) データ構造を組み合わせて、より複雑なデータ構造を形成することもできます。 オブジェクトには配列が含まれていますここでは、複雑な siteInfo オブジェクトを作成します。 siteInfo オブジェクトの siteUrl プロパティの値は www.haicoder.com、siteInfo オブジェクトの siteAddr プロパティの値は shanghai、siteInfo オブジェクトの sitePriority プロパティの値は 1、siteInfo オブジェクトの siteModule プロパティは配列です。 siteModule 配列には 2 つの要素があり、最初の要素は HTML で、2 番目の要素は JavaScript です。両方の要素も配列型です。 配列にはオブジェクトが含まれていますJavaScript と同様に、配列にはオブジェクトを含めることができます。 "従業員":[ {"firstName":"ジョン", "lastName":"ドウ"}, {"firstName":"アンナ", "lastName":"スミス"}, {"firstName":"ピーター", "lastName":"ジョーンズ"} ] 上記の例では、オブジェクト「employees」は配列です。 3 つのオブジェクトが含まれます。 各オブジェクトは従業員レコード (名と姓) です。 JSON構文ルール
均一な解析を確実に行うには、JSON 文字列を二重引用符 Json キーと値のペアJson データの書き込み形式は、名前/値のペアです。 JavaScript オブジェクトのプロパティと同じです。名前/値のペアは、フィールド名 (二重引用符で囲まれている)、それに続くコロン、そして値で構成されます。 Json値のデータ型Json 値には次の種類があります。
JSON は JavaScript 構文を使用しますが、JSON 形式は単なるテキストです。 ダグラスは長年 Yahoo のシニア アーキテクトを務めており、当然ながら JavaScript が大好きです。彼が設計した Json は、実際には JavaScript 構文のサブセットであり、JavaScript オブジェクトの文字列表現です。 Json はテキストを使用して、本質的には文字列である JavaScript オブジェクトの情報を表します。 JsonはJavaScript構文を使用する Json は JavaScript 構文を使用するため、JavaScript で Json を処理するために追加のソフトウェアは必要ありません。 ここでは、JavaScript を通じてオブジェクト配列を作成し、オブジェクト配列に値を割り当てます。 コンテンツにアクセスする データを変更する オブジェクトの 2 番目の要素のカテゴリを変更します。
Json および JavaScript オブジェクトのトラバーサル Json文字列のトラバーサルとJavaScript オブジェクトのトラバーサルはどちらも、トラバースに for-in ループを使用します。 Jsonトラバーサル haicoder.html ファイルを作成し、次のコードを入力します。 <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>Json トラバーサル</title> <script type="text/javascript"> console.log("haicoder.net (www.haicoder.net)"); var str = {"name":"haicoder", "url":"www.haicoder.net"}; (var k in str) { console.log(k + " -> " + str[k]); } </スクリプト> </head> <本文> </本文> </html> まず、Json 文字列 str を定義しました。次に、 for ループを使用して Json 文字列をトラバースします。k は Json 文字列内のキーであり、str[k] は Json 文字列キーに対応する値です。 ブラウザでファイルを開くと、ブラウザの出力は次のようになります。 JavaScript オブジェクトトラバーサル haicoder.html ファイルを作成し、次のコードを入力します。 !DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>JavaScript オブジェクトトラバーサル</title> <script type="text/javascript"> console.log("haicoder.net (www.haicoder.net)"); var obj = {name:"haicoder", url:"www.haicoder.net"}; (var k in obj) { console.log(k + " -> " + obj[k]); } </スクリプト> </head> <本文> </本文> </html> まず、JavaScript オブジェクト obj を定義します。次に、 for ループを使用して JavaScript オブジェクトをトラバースします。k は JavaScript オブジェクトのキーであり、obj[k] は JavaScript オブジェクト キーに対応する値です。 Json と JavaScript の配列トラバーサル Json配列の走査とJavaScript配列の走査はどちらもfor-inループを使用して走査します。 Json配列の走査 haicoder.html ファイルを作成し、次のコードを入力します。 <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>Json 配列のトラバーサル</title> <script type="text/javascript"> console.log("haicoder.net (www.haicoder.net)"); var jsonArr = [ {"mod":"json", "url":"www.haicoder.net/json"}, {"mod":"vue", "url":"www.haicoder.net/vue"}, {"mod":"python", "url":"www.haicoder.net/python"} ] (var k in jsonArr) { console.log(k + " -> " + jsonArr[k].mod + " -> " + jsonArr[k].url); } </スクリプト> </head> <本文> </本文> </html> まず、Json 配列を定義します。配列内の各要素はオブジェクトです。次に、 for ループを使用して Json 配列をトラバースします。k は Json 配列の添字であり、jsonArr[k] は Json 配列の添字キーに対応する値です。 Json 配列内の各オブジェクトの値を取得するには、 JavaScript オブジェクト配列のトラバーサル var Js_Result = [ { 名前: "haicoder", URL: "www.haicoder.net", 年齢: 20 }, { 名前: "JavaScript", URL: "www.JavaScript.net", 年齢: 30 } ] for (var i in Js_Result){ // iは配列の添え字です console.log(i+" "+Js_Result[i].firstName +" "+Js_Result[i].lastName +" "+Js_Result[i].age); } //結果出力は0です haicoder www.haicoder.net 20 1 JavaScript www.JavaScript.net 30 JavaScript オブジェクトを配列 Js_Result に保存します。for ループを使用して Json_Result を走査します。ここで、i は配列インデックスであり、Js_Result[i].firstName を通じて対応する値を取得します。 シリアル化 任意の JavaScript オブジェクトを JSON に変換するということは、オブジェクトを JSON 形式の文字列にシリアル化し、ネットワーク経由で他のコンピューターに送信できるようにすることを意味します。 まず、Xiaoming オブジェクトを JSON 文字列にシリアル化します。 出力の見栄えを良くするために、パラメータを追加し、インデントに従って出力することができます。
結果:
オブジェクトの各キーと値のペアが最初に関数によって処理されるように関数を渡すこともできます。 関数 convert(キー, 値) { if (typeof value === 'string') { 戻り値.toUpperCase(); } 戻り値; } JSON.stringify(xiaoming, 変換, ' '); 上記のコードはすべての属性値を大文字に変換します。 { "名前": "シャオミン", 「年齢」: 14, 「性別」:真、 「高さ」: 1.65, 「グレード」: null、 "中学校": "\"W3C\" 中学校", 「スキル」: [ 「JavaScript」、 「ジャバ」、 「パイソン」、 「LISP」 ] } Xiaoming のシリアル化方法も正確に制御したい場合は、 var 暁明 = { 名前: 'シャオミン'、 年齢: 14歳 性別: 正しい、 高さ: 1.65、 グレード: null、 '中学校': '\"W3C\" 中学校', スキル: ['JavaScript', 'Java', 'Python', 'Lisp'], toJSON: 関数() { return { // 名前と年齢のみを出力し、キーを変更します: '名前': this.name, 「年齢」: this.age }; } }; JSON.stringify(xiaoming); // '{"名前":"Xiaoming","年齢":14}' デシリアライゼーション 通常、サーバーから JSON データを読み取り、そのデータを Web ページに表示します。 JSON 形式の文字列を取得した後、 JSON.parse('[1,2,3,true]'); // [1, 2, 3, true] JSON.parse('{"name":"Xiao Ming","age":14}'); // オブジェクト {name: 'Xiao Ming', age: 14} JSON.parse('true'); // 真 JSON.parse('123.45'); // 123.45
Jsonの特徴
JSON (JavaScript Object Notation) を 1 つの記事で理解する方法について説明したこの記事はこれで終わりです。JSON (JavaScript Object Notation) に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS3 パッケージ化後にプレフィックスプラグインを自動的に追加する方法の詳細な説明: autoprefixer
>>: mysql replace into の使用法の詳細な説明
ドロップダウン付きのテキストボックスを使用すると、ユーザーはドロップダウン リストから入力を選択した...
/usr/local/nginx/conf と入力する sudo cd /usr/local/ngi...
この記事の例では、タイムライン再生コンポーネントを実装するためのVUEの具体的なコードを参考までに共...
前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...
プロジェクトで frameset 属性を使用したことがあるかどうかはわかりません。昨年、オンライン ...
ウェブサイトのモバイル版には、少なくともいくつかの基本機能が必要です。 1. ページの適用性の問題:...
この記事では、MySQL ユーザー権限管理の例について説明します。ご参考までに、詳細は以下の通りです...
この記事は主に、純粋な CSS3 を使用して div が順番に出入りする効果を紹介します。一定の参考...
序文レイアウトの点では、Gobang はランダムな動きを目的とするゲームよりも実装がはるかに簡単で、...
現在、Redis とコンテナについて学習中なので、Docker を使用して Redis マスタースレ...
はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...
1. inodeの紹介inode を理解するには、まずファイル ストレージから始める必要があります。...
HTML+CSS 1. WEB 標準と W3C の理解と知識<br /> タグを閉じ、小...
この記事は、この時期の「ピーターから奪ってポールに払う」という仕事のスタイルに対する私の不満から生ま...
数日前にプログラムを書いていたとき、プロンプト情報 (TITLE) を新しい行で囲みたいと思いました...