Json の長所と短所、使用方法の紹介

Json の長所と短所、使用方法の紹介

1. JSONとは何か

JSON の概念は非常にシンプルです。JSON は、JavaScript 構文のサブセット、つまり配列とオブジェクトの表現に基づいた軽量のデータ形式です。 JavaScript 構文が使用されるため、JSON 定義を JavaScript ファイルに含めて、XML ベースの言語による追加の解析なしでアクセスできます。ただし、JSON を使用する前に、JavaScript の配列とオブジェクトリテラルの特殊な構文を理解することが重要です。

1.1 配列リテラル

配列リテラルは、角括弧で囲まれたコンマ区切りの JavaScript 値のセットです。例:

var aNames=["hello", 12, true , null];

1.2 オブジェクトリテラル

オブジェクトリテラルは、2 つの中括弧で囲むことによって定義されます。中括弧内に任意の数の名前と値のペアを配置して、書式文字列の値を定義することができます。最後の行を除き、各名前と値のペアの後にはコンマを続ける必要があります (これは、Perl の連想配列の定義に似ています)。例:

        var oCar = {

               "色": "赤",       

              「ドア」: 4,

               「有料」: true

        };

1.3 混合リテラル

オブジェクトと配列リテラルを混在させて、オブジェクトの配列、または配列を含むオブジェクトを作成できます。例えば:

{コメント:[
{
id:1,
著者:"someone1",
URL:"http://someone1.x2design.net",
内容:「こんにちは」
},
{
id:2,
著者:"someone2",
URL:"http://someone2.x2design.net",
内容:「こんにちは」
},
{
id:3,
著者:"someone3",
URL:"http://someone3.x2design.net",
内容:「こんにちは」
}
]};

1.4 JSON構文

Ajax アプリケーションでは、サーバーが JavaScript ステートメントを直接生成し、クライアントが eval メソッドを直接使用してオブジェクトを取得するため、XML の解析によるパフォーマンスの低下が排除されます。 同時に、JavaScript 通信でデータ形式として JSON を使用する利点は、データの値をすぐに取得できるため、そこに含まれるデータに高速にアクセスできることです。

var oCarInfo = eval("(" + sJSON + ")");

覚えておいてください: 中括弧も JavaScript のステートメントです。パーサーが中括弧がステートメントではなくオブジェクトを表していることを認識する唯一の方法は、中括弧を囲む括弧 (コードがステートメントではなく式であることを示すために使用されます) を見つけることです。

1.5 JSONエンコードとデコード

Corockford は、JSON リソースの一部として、JSON および Javascript オブジェクトを直接デコードおよびエンコードできるツールを開発しました。このツールのソースコードは、https://github.com/douglascrockford/JSON-js からダウンロードできます。

上で述べたように、 eval() の使用には固有の欠陥がいくつかあります。これは、JSON だけでなく、渡されたすべての JavaScript コードを評価するように設計されています。したがって、エンタープライズレベルの Web アプリケーション開発においては、セキュリティ上の大きなリスクが生じます。この問題を解決するには、JSON コードを Javascript に変換するだけのパーサーである JSON.parse() メソッドを使用できます。例えば:

var oObject = JSON.parse(sJSON);

また、Javascript オブジェクトを JSON 文字列 (データ転送に使用) に変換するためのツールも提供します (Javascript にはこれに対する組み込みサポートはありません)。オブジェクトを JSON.Stringify() メソッドに渡すだけです。次の例を見てください。

       var oCar = 新しいオブジェクト();

       oCar.ドア = 4;

        oCar.color = "青";

       oCar.year = 1995;

       oCar.drivers = 新しい配列("Penny", "Dan", "Kris");

       document.write(JSON.stringify(oCar));

このコードは次のような JSON 文字列を出力します。

{"ドア" : 4、"色" : "青"、"年" :1995、"運転手" : ["ペニー"、"ダン"、"クリス"]}

2. JSON と XML

上で述べたように、JSON が XML よりも優れている大きな利点の 1 つは、JSON の方がはるかにシンプルであることです。

XML データ表現の例を参照してください。

XML 表現の使用:

<コメント>
<コメント>
<id>1</id>
<author>誰か1</author>
<url>http://someone1.x2design.net</url>
<content>こんにちは</content>
</コメント>
<コメント>
<id>2</id>
<author>誰か2</author>
<url>http://someone2.x2design.net</url>
<content>誰か1</content>
</コメント>
<コメント>
<id>3</id>
<author>誰か3</author>
<url>http://someone3.x2design.net</url>
<content>こんにちは</content>
</コメント>
</コメント>

JSON 表現の使用:

{コメント:[
{
id:1,
著者:"someone1",
URL:"http://someone1.x2design.net",
内容:「こんにちは」
},
{
id:2,
著者:"someone2",
URL:"http://someone2.x2design.net",
内容:「こんにちは」
},
{
id:3,
著者:"someone3",
URL:"http://someone3.x2design.net",
内容:「こんにちは」
}
]};

多くの冗長な情報が欠落していることに気づくのは簡単です。終了タグを開始タグと一致させる必要がないため、同じ情報を送信するために必要なバイト数が大幅に削減されます。創設者のコーロックフォード氏はこれを「XML のダイエット プラン」と呼んでいます。

XML と比較した JSON 形式のデータの欠点は、素人にとって読みにくいことです。もちろん、データ交換形式は肉眼で見ることを意図したものではないという見方もあります。データがツールによって作成され、解析される場合、そのデータが人間が読めるものである必要はまったくありません。要するに、JSON ツールが利用可能だということです。

3. サーバーサイドJSONツール

java: Douglas Crock ford によって開発された java JSON ツールは、https://github.com/stleary/JSON-java からダウンロードでき、JSP で使用できます。

4. JSONの長所と短所

JSON は、XML 解析によって生じるパフォーマンスと互換性の問題を軽減するだけでなく、JavaScript でも非常に使いやすいです。配列をトラバースしてオブジェクトのプロパティにアクセスすることで、データを簡単に取得できます。また、読み取り可能で、基本的に構造化データの特性を備えています。これは非常に良い方法だと言わざるを得ません。実際、Google マップはデータの転送に XML ではなく JSON を使用しています。

JSON のもう 1 つの利点は、クロスドメイン実行可能性です。たとえば、www.xxx.com の Web ページで JSON を使用することは完全に可能であり、ドメイン間で情報を送信できます。ただし、XMLHttpRequest を使用すると、Javascript の内部セキュリティの性質によって制限されるクロスドメイン情報を取得できません。

JSON は見た目が美しいですが、XML を完全に置き換えることができますか?これは事実ではありません。その理由は、XML の強みである普遍性にあります。サーバーに文法的に正しい JavaScript コードを生成させることは簡単ではありません。これは主に、サーバー側とクライアント側に異なる開発者がいる大規模なシステムで発生します。オブジェクトの形式を調整する必要があり、簡単にエラーが発生する可能性があります。

JSON.parse(jsonstr); //json文字列をjsonオブジェクトに変換できます

JSON.stringify(jsonobj); //jsonオブジェクトをjson文字列に変換できます

このページを更新するには js を使用します: window.location.reload();

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • jsonファイルの書き方の詳細説明
  • Jsonフォーマットの詳細な説明
  • 1 つの記事で JSON (JavaScript Object Notation) を理解する
  • JSON の概要と使用方法の概要
  • js の json オブジェクトの詳細な紹介
  • jQuery JSON 解析の例
  • JSONの原理分析と例の紹介
  • JSONデータ形式の概要
  • 簡潔なJSONの紹介
  • jsonの簡単な紹介

<<:  2015-2016年に主流となるインタラクティブ体験のトレンド

>>:  MySQLデータベースのパスワードを忘れた場合の解決策

推薦する

スクロールバーの美化効果を実現するための CSS3 のサンプル コード

具体的なコードは次のとおりです。 /*スクロールバーの幅*/ ::-webkit-スクロールバー{ ...

Reactコンポーネントのライフサイクル機能についての簡単な説明

React コンポーネントのライフサイクル機能とは何ですか?ライフサイクル関数は、ES6 構文クラス...

MySQL 5.7.17 のインストールと設定のグラフィックチュートリアル

ブロガーはこう述べています。「私は『史上最も簡単な MySQL チュートリアル』という一連のブログ記...

Window.nameはクロスドメインデータ転送の問題を解決します

<br />原文: http://research.microsoft.com/~hel...

Linux 7.7 でスワップ パーティション SWAP を設定する方法

Linux システムの Swap パーティション、つまり swap パーティションは、一般に仮想メモ...

Vue+SSMは画像アップロードのプレビュー効果を実現します

現在の要件は、ファイルのアップロード ボタンがあることです。ボタンをクリックすると、アップロードする...

VUEの基本を理解するのに役立つ記事

目次VUEとはVueのコアプラグインVueルーターヴュークスアクシオス要素UI Vue フロントエン...

JDBC 探索 SQLException 分析

1. SQLExceptionの概要JDBC を使用してデータ ソース (この記事のデータ ソースは...

Linux での sshd サービスとサービス管理コマンドの詳細な説明

sshd SSH は Secure Shell の略で、アプリケーション層のセキュリティ プロトコル...

Reactはtodolistの追加、削除、変更、クエリを実装します

目次ToDoリストを例に挙げましょうディレクトリは次のとおりですアプリ入力.jsリスト.jsアイテム...

Vue は検証コードのカウントダウンボタンを実装します

この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介しま...

反応ルーティングでパラメータを渡すいくつかの方法についての簡単な説明

最初のパラメータ渡し方法は、動的ルーティングパラメータ渡しです。リンクのパス属性を設定することで、ル...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

単一/複数行テキストを含む div を垂直方向に中央揃えする N 通りの方法 (高さ不明/高さ固定)

この問題について話すとき、垂直方向の中央揃えを設定するための vertical-align 属性が ...

MySQL 8.0.15 のダウンロードとインストールの詳細なチュートリアルは初心者にとって必須です。

この記事では、MySQL 8.0.15をダウンロードしてインストールするための具体的な手順を参考まで...