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データベースのパスワードを忘れた場合の解決策

推薦する

フロントエンド制作に関する簡単な議論: 互換性のために IE6 はまだ必要ですか?

国内市場ではIE6~7のサポートに対する一定の需要がまだありますが、フロントエンド開発者として、私た...

Web 標準アプリケーション: Tencent QQ ホームページの再設計

Tencent QQのホームページがリニューアルされ、Webフロントエンド開発がますます注目を集めて...

MySQL カーソルの概念と使用法の詳細な説明

この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...

ドラッグ効果を実現するための純粋なCSSコード

目次1. ドラッグ効果の例2. CSS実装の原則3. CSS実装の詳細4. CSSレイアウト1. 固...

DockerのIDEA構成プロセス

IDEA は Java で最も一般的に使用されている開発ツールであり、Docker は最も人気のある...

MySQLスレーブライブラリの復元の実践記録

状況の説明:今日、MySQL データベースのスレーブ ノード ホストにログインしたところ、/var/...

Ubuntu 18.04にmysql5.7をインストールする

Ubuntu 18.04では参考までにmysql 5.7をインストールします。具体的な内容は以下のと...

CentOS7 に MySQL をオフラインでインストールする詳細なチュートリアル

1. 元のmariadbを削除します。削除しないとmysqlをインストールできません。 mariad...

SQL ステートメント実行の詳細な説明 (MySQL アーキテクチャの概要 -> クエリ実行プロセス -> SQL 解析順序)

序文:私はずっと、SQL 文がどのように、どのような順序で実行されるのかを知りたいと思っていました。...

モバイル端末での Vue2.x Picker のグローバル呼び出し実装

目次ピッカーコンポーネントとはピッカーコンポーネントの問題解決オプションの説明解決ディレクトリ部門P...

Zabbix 監視ソリューション - 最新の公式バージョン 4.4 [推奨]

ザビックス2019/10/12 チェンシン参照するhttps://www.zabbix.com/do...

MySQL のユーザー権限を照会する方法の概要

MySQLユーザー権限を表示する2つの方法を紹介します1. MySQL grantsコマンドを使用す...

HTML でスクロールバーを非表示にしたり削除したりする方法

1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...

React における useEffect と useLayoutEffect の違い

目次前提条件使用効果コミット前ミューテーション効果コミットミューテーション効果コミットレイアウト効果...

要素のフォーム要素の使用の概要

フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...