ホームページ ウェブフロントエンド jsチュートリアル JavaScript の json_json 解析に関する詳細なコード

JavaScript の json_json 解析に関する詳細なコード

May 16, 2016 pm 06:39 PM
javascript json 解析する

JSON のルールは単純です。オブジェクトは「名前と値のペア」の順序付けされていないコレクションです。オブジェクトは「{」(左括弧) で始まり、「}」(右括弧) で終わります。各「名前」の後には「:」 (コロン) が続き、「名前と値」のペアは「,」 (カンマ) で区切られます。具体的な詳細については、http://www.json.org/json-zh.html を参照してください。

簡単な例:

js コード

コードをコピー コードは次のとおりです:

function showJSON() {
var user =
{
"ユーザー名":"アンディ ",
"年齢":20,
"情報": { "電話番号": "123456", "携帯電話": "98765"},
"住所":
[
{"都市":"北京","郵便番号":"222333"},
{"都市":"ニューヨーク","郵便番号":"555666"}
]


alert(user.username);
alert(user.info.cellphone);
alert(user.address[0].city) ;
alert (user.address[0].postcode);
}

これは、ユーザー名、年齢、情報、住所などの属性を持つユーザー オブジェクトを表します。

JSON を使用してデータを単純に変更することもできます。上記の例を変更します

js コード

コードをコピー コードは次のとおりです。
function showJSON() {
var user =
{
"username":"andy",
"年齢": 20,
"情報": { "電話": "123456", "携帯電話": "98765"},
"住所":
[
{"都市":" beijing", "postcode":"222333"},
{"city":"newyork","postcode":"555666"}
]
}

alert(user.ユーザー名);
アラート(ユーザー.情報.携帯電話);
アラート(ユーザー.アドレス[0]) ].postcode );

user.username = "Tom";
alert(user.username);


JSON は json.js パッケージを提供します。ダウンロード http://www.json.org/json.js インポート後は、object.toJSONString() を使用して JSON データに変換するだけです。

js コード




コードをコピー
コードは次のとおりです: 関数showCar() { var carr = new Car("Dodge", "Coronet R/T", 1968, " yellow");
alert(carr.toJSONString());
関数 Car(メーカー、モデル、年、色) {
this.make = make;
this.year = 年
this.color = 色; ;
}


eval を使用して JSON 文字をオブジェクトに変換できます

js コード



コードをコピー


コードは次のとおりです:

または parseJSON( ) メソッド

js コード



コードをコピー


コードは次のとおりです:
以下では、プロトタイプを使用して JSON の ajax 例を記述します。

最初にサーブレット (私のサーブレットは servlet.ajax.JSONTest1.java) を書き、文を書きます

Java コード

response.getWriter().print("{ " name": "Violet", "occupation": "character" }");
ページに ajax リクエストを書き込みます

js コード




コードをコピーします


コードは次のとおりです。
function sendRequest() { var url = "/MyWebApp/JSONTest1"; var mailAjax = new Ajax.Request(url, { メソッド: 'get',
onComplete: jsonResponse
}
}

関数jsonResponse(originalRequest) {
alert(originalRequest.responseText);
var myobj =originalRequest.responseText.parseJSON();
alert(myobj.name); 🎜>Prototype-1.5.1.js は JSON メソッド String.evalJSON() を提供します。json.js は使用できません。上記のメソッドを変更してください

js コード




コードをコピーします


コードは次のとおりです。

function jsonResponse(originalRequest) {
alert(originalRequest.responseText); var myobj = originalRequest.responseText.evalJSON(true);
alert(myobj.name)
;
JSON は Java jar パッケージも提供します http://www.json.org/java/index.html API も非常に簡単です。例を次に示します。

JavaScript でリクエスト パラメータを入力します。 🎜 >
js コード

コードをコピー コードは次のとおりです:
function sendRequest () {
var carr = new Car("Dodge", "Coronet R/T", 1968, " yellow");
var pars = "car= carr.toJSONString(); 🎜>var url = "/MyWebApp/JSONTest1";
var mailAjax = new Ajax.Request(
url,
{
メソッド: 'get',
パラメータ: pars,
onComplete: jsonResponse
}
);
}


JSON リクエスト文字列を使用すると、JSONObject を生成して解析し、サーブレットを変更して JSON 処理を追加できます ( json.jar を使用する必要があります)
java コード



コードをコピー コードは次のとおりです: private void doService( HttpServletRequest request, HttpServletResponse response) throws IOException {
String s3 = request.getParameter("car")
try {
JSONObject jsonObj = new JSONObject(s3); ;
System.out.println( jsonObj.getString("model"));
System.out.println(jsonObj.getInt("year")); 🎜>e.printStackTrace();
}
response.getWriter().print("{ "名前": "バイオレット", "職業": "キャラクター" }"); >

も使用できます JSONObject は JSON 文字列を生成し、サーブレットを変更します

Java コード



コードをコピー


コードは次のとおりです。 } catch (JSONException e) {
e.printStackTrace();
}

JSONObject resultJSON = new JSONObject(); append("名前", "バイオレット")
.append( "職業", "開発者")
.append("年齢", new Integer(22));
System.out.println( resultJSON.toString());
} catch (JSONException e) {
e.printStackTrace();
response.getWriter().print(resultJSON.toString()); >}


js コード




コードをコピー


コードは次のとおりです:

関数 jsonResponse(originalRequest) {
alert(originalRequest.responseText) ;
var myobj =originalRequest.responseText.evalJSON(true);
alert( myobj.age); } 参照 http://www.json.org/js.html
http://www. blogjava.net/Jkallen/archive/2006/03/28/37905.html

http://www.json.org/

http://www.prototypejs.org/learn /json

http://www.json.org/java /index.html
http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/index .html

JSON を使用する
JSON は JavaScript オブジェクト表記法であり、データを記述するための軽量の構文です。 JSON は JavaScript 言語のサブセットであるため、エレガントです。次に、これがなぜそれほど重要なのかを見ていきます。まず、JSON と XML の構文を比較してみましょう。

JSON と XML は両方とも、構造化メソッドを使用してデータを記述します。たとえば、アドレス帳アプリケーションは、XML 形式でアドレス カードを生成するための Web サービスを提供できます。




コードをコピー


コードは次のとおりです。以下:



<フルネーム>ショーン・ケリー
SKコンサルティング

kelly@seankelly.biz

kelly@seankelly.tv



1 214 555 1212
1 214 555 1213
1 214 555 1214


1234 Main St
Springfield, TX 78080-1216

5678 Main St
Springfield, TX 78080-1316



http://seankelly.biz/

http://seankelly.tv/




JSON を使用します。形式は次のとおりです:
复制代 代码如下:

{
"fullname": "Sean Kelly",
"org": "SK Consulting",
"emailaddrs": [
{"type": "work", "value ": "kelly@seankelly.biz"},
{"type": "home", "pref": 1, "value": "kelly@seankelly.tv"}
],
"電話": [
{"タイプ": "職場", "pref": 1, "値": " 1 214 555 1212"},
{"タイプ": "FAX", "値": " 1 214 555 1213"},
{"タイプ": "モバイル", "値": " 1 214 555 1214"}
],
"アドレス": [
{"タイプ": "work", "format": "us",
"value": "1234 Main StnSpringfield, TX 78080-1216"},
{"type": "home", "format": " us",
"value": "5678 Main StnSpringfield, TX 78080-1316"}
],
"urls": [
{"type": "work", "value": "http://seankelly.biz/"},
{"type": "home", "value": "http://seankelly.tv/"}
]
}

ご覧のとおり、JSON は構造化されたデータ要素を持ち、これは XML と似ています。JSON もテキストに基づいており、XML も同様です。主に、JSON の方がより簡潔で、冗長性がより少なくなります。 JSON ウェブサイト ポイントでは、JSON プロトコルが厳密に説明されており、現在はそのようになっています。各 JSON 文には、このようなオブジェクトが記述されており、そのオブジェクトには、次のものが含まれます。

、JSON バージョンはより高いレベルであり、682 バイトのスペースしか使用しませんが、XML バージョンは 744 バイトのスペースを必要とします。 >XML 対比 JSON: ローカル送信
XMLHttpRequest オブジェクトを使用すると、AJAX ベースのアプリケーションから XML および JSON ファイルを取得できます。 🎜>复制代


代码如下:
は、Web サーバーのアプリケーションとして、提供されているプロセッサー関数 (myHandler 関数) を何度も調整して、事前終了事由を提供したり、度条などを更新したりします。 通常、Web リクエストでのみ完了します。

は、XML バージョンのアドレス帳データを処理するために、myHandler の代コードとして次のようになります:



复制代


代码如下:var addrsElem = root.getElementsByTagName('addresses')[0];
var firstAddr = addrsElem.getElementsByTagName('address')[0];
var addrText = firstAddr.firstChild;
var addrValue = addrText.nodeValue;
addrField.value = addrValue;
}
}


XML ドキュメントを解析する必要がないことに注意してください。XMLHttpRequest オブジェクトは自動的に解析され、responseXML で DOM ツリーが利用可能になります。 responseXML 属性を使用すると、getElementsByTagName メソッドを呼び出してドキュメントのアドレス部分を見つけることができます。最初のメソッドを使用してアドレス部分を見つけることもできます。次に、getElementsByTagName を再度呼び出して、住所部分の最初の住所要素を見つけることができます。これにより、ドキュメントの最初の DOM 子ノード (テキスト ノード) が取得され、そのノードの値 (必要な住所) が取得されます。最後に、結果をフォーム フィールドに表示できます。

これは確かに単純な作業ではありません。ここで、JSON を使用してもう一度試してください。

function myHandler() {
if (req.readyState == 4 /*complete*/) {
var addrField = document.getElementById('addr') ;
var Card = eval('(' req.responseText ')');
addrField.value =card.addresses[0].value;
}

あなた 最初に行うことは、JSON 応答を解析することです。ただし、JSON は JavaScript のサブセットであるため、eval 関数を呼び出すことで、JavaScript 独自のコンパイラを使用して解析できます。 JSON の解析には 1 行しかかかりません。さらに、JSON 内のオブジェクトの操作は、他の JavaScript オブジェクトの操作と同様です。これは、DOM ツリーを介して操作するよりも明らかに簡単です。たとえば、
card.addresses[0].value は最初の番地、「1234 Main Stb &」
card.addresses[0].type はaddress Type、「work」
card.addresses[1] は自宅の住所オブジェクトです
card.fullname はカードの名前、「Sean Kelly」
さらに詳しく見ると、次のことがわかります。 XML 形式のドキュメントには少なくともカードというフォロワー要素があります。これは JSON には存在しません。なぜですか? おそらく、Web サービスにアクセスするための JavaScript を開発している場合は、何が必要かをすでに知っているでしょう。ただし、これを JSON で使用できます:
{"card": {"fullname": ...}}
この手法を使用すると、JSON ファイルは常に単一の名前付きプロパティを持つオブジェクトになります。 、このプロパティはオブジェクトのタイプを識別します。

JSON は高速で信頼性がありますか?
JSON は軽量で小さなドキュメントを提供し、JSON は JavaScript での使用が容易です。 XMLHttpRequest は XML ドキュメントを自動的に解析しますが、JSON ファイルを手動で解析する必要があります。しかし、JSON の解析は XML の解析よりも遅いのでしょうか。著者は、XMLHttpRequest を使用して XML を解析し、何千回もテストを繰り返して JSON を解析しました。その結果、JSON の解析は XML よりも 10 倍高速になりました。速度が最も重要な要素であるデスクトップ アプリケーションとして AJAX を見ると、JSON が優れていることは明らかです。

もちろん、AJAX プログラムのデータを生成するためにサーバー側を常に制御できるわけではありません。サーバーの代わりにサードパーティのサーバーを使用して、XML 形式の出力を提供することもできます。また、サーバーが JSON を提供する場合、実際にそれを使用してもよろしいですか?

コード内で注目に値するのは、応答テキストを eval に直接渡していることです。サーバーを制御している場合は、これを行うことができます。そうでない場合、悪意のあるサーバーによってブラウザが危険な動作を実行する可能性があります。このような場合は、JavaScript で記述されたコードを使用して JSON を解析することをお勧めします。幸いなことに、これはすでに存在します。

解析と言えば、Python 愛好家なら、JSON が JavaScript のサブセットであるだけでなく、Python のサブセットでもあることに気づくかもしれません。 Python で JSON を直接実行することも、代わりに安全な JSON 解析を使用することもできます。 JSON.org Web サイトには、一般的に使用される多くの JSON パーサーがリストされています。

サーバーサイド JSON
ここまでは、クライアント ブラウザーで実行される AJAX ベースの Web アプリケーションでの JSON の使用に焦点を当ててきたかもしれません。当然ですが、まずサーバー側でJSON形式のデータを生成する必要があります。幸いなことに、JSON の作成や他の既存データの JSON への変換は非常に簡単です。 TurboGears などの一部の WEB アプリケーション フレームワークには、JSON 出力のサポートが自動的に含まれます。

さらに、商用 WEB サービス プロバイダーも JSON に注目しています。 Yahoo は最近、多くの JSON ベースの Web サービスを作成しました。 Yahoo のさまざまな検索サービス、フルフィルメント プラン、del.icio.us、高速道路交通サービスも JSON 出力をサポートしています。他の主要な Web サービス プロバイダーも JSON のサポートを追加することは間違いありません。

概要
JSON の賢い点は、JSON が JavaScript と Python のサブセットであるため、使いやすくなり、AJAX との効率的なデータ対話が可能になることです。 XML よりも解析が速く、使いやすいです。 JSON は現在、「Web 2.0」の最も強力な代弁者になりつつあります。標準のデスクトップ アプリケーションであろうと Web アプリケーションであろうと、すべての開発者はそのシンプルさと利便性にますます注目しています。バズワード準拠、Web 2.0 ベース、AJAX 対応のアジャイル開発に JSON を適用する喜びを体験していただければ幸いです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracle エラー 3114 の詳細な説明: 迅速に解決する方法 Oracle エラー 3114 の詳細な説明: 迅速に解決する方法 Mar 08, 2024 pm 02:42 PM

Oracle エラー 3114 の詳細な説明: 迅速に解決する方法、具体的なコード例が必要です Oracle データベースの開発および管理中に、さまざまなエラーが頻繁に発生しますが、その中でもエラー 3114 は比較的一般的な問題です。エラー 3114 は通常、データベース接続に問題があることを示します。これは、ネットワーク障害、データベース サービスの停止、または不適切な接続文字列設定が原因である可能性があります。この記事では、エラー 3114 の原因とこの問題を迅速に解決する方法を詳しく説明し、特定のコードを添付します

PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント May 04, 2024 pm 06:15 PM

PHP 配列を JSON に変換するためのパフォーマンスの最適化方法には、JSON 拡張機能と json_encode() 関数の使用、文字エスケープを回避するためのバッファーの使用、およびサードパーティのエンコード結果の使用の検討が含まれます。 JSONエンコーディングライブラリ。

PHPにおけるmidpointの意味と使い方の分析 PHPにおけるmidpointの意味と使い方の分析 Mar 27, 2024 pm 08:57 PM

【PHPにおけるミッドポイントの意味と使い方の分析】 PHPでは、ミッドポイント(.)は2つの文字列やオブジェクトのプロパティやメソッドを接続するためによく使われる演算子です。この記事では、PHP における中間点の意味と使用法を詳しく掘り下げ、具体的なコード例を示して説明します。 1. 文字列中間点演算子の接続 PHP での最も一般的な使用法は、2 つの文字列を接続することです。 2 つの文字列の間に . を置くと、それらをつなぎ合わせて新しい文字列を形成できます。 $string1=&qu

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? May 06, 2024 pm 10:09 PM

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化を制御します。 シリアル化: @JsonIgnore: プロパティを無視します @JsonProperty: 名前を指定します @JsonGetter: get メソッドを使用します @JsonSetter: set メソッドを使用します Deserialization: @JsonIgnoreProperties: プロパティ @ JsonProperty を無視します:名前を指定 @JsonCreator: コンストラクターを使用 @JsonDeserialize: カスタム ロジック

Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Mar 27, 2024 pm 05:24 PM

Win11 の新機能の分析: Microsoft アカウントへのログインをスキップする方法 Windows 11 のリリースにより、多くのユーザーは、Windows 11 がより便利で新しい機能をもたらしたことに気づきました。ただし、ユーザーによっては、自分のシステムが Microsoft アカウントに関連付けられることを好まず、この手順をスキップしたい場合があります。この記事では、ユーザーが Windows 11 で Microsoft アカウントへのログインをスキップし、よりプライベートで自律的なエクスペリエンスを実現するのに役立ついくつかの方法を紹介します。まず、一部のユーザーが Microsoft アカウントにログインすることに抵抗がある理由を理解しましょう。一方で、一部のユーザーは次のことを心配しています。

Apache2 は PHP ファイルを正しく解析できません Apache2 は PHP ファイルを正しく解析できません Mar 08, 2024 am 11:09 AM

スペースの制限のため、以下は簡単な記事です。Apache2 は一般的に使用されている Web サーバー ソフトウェアであり、PHP は広く使用されているサーバー側スクリプト言語です。 Web サイトを構築する過程で、Apache2 が PHP ファイルを正しく解析できず、PHP コードの実行が失敗するという問題が発生することがあります。この問題は通常、Apache2 が PHP モジュールを正しく構成していないこと、または PHP モジュールが Apache2 のバージョンと互換性がないことが原因で発生します。この問題を解決するには通常 2 つの方法があります。1 つは次のとおりです。

PHP 配列を JSON に変換するための簡単なヒント PHP 配列を JSON に変換するための簡単なヒント May 03, 2024 pm 06:33 PM

PHP 配列は、 json_encode() 関数を使用して JSON 文字列に変換できます (例: $json=json_encode($array);)。逆に、 json_decode() 関数を使用して JSON から配列に変換できます ($array= json_decode($json);) 。その他のヒントには、深い変換の回避、カスタム オプションの指定、サードパーティ ライブラリの使用などがあります。

XML 解析用の Java ライブラリの比較: 最適なソリューションを見つける XML 解析用の Java ライブラリの比較: 最適なソリューションを見つける Mar 09, 2024 am 09:10 AM

はじめに XML (Extensible Markup Language) は、データを保存および送信するための一般的な形式です。 Java での XML の解析は、データ交換からドキュメント処理に至るまで、多くのアプリケーションにとって必要なタスクです。 XML を効率的に解析するために、開発者はさまざまな Java ライブラリを使用できます。この記事では、開発者が情報に基づいた選択を行えるよう、機能、機能、パフォーマンスに焦点を当てて、最も人気のある XML 解析ライブラリのいくつかを比較します。 DOM (Document Object Model) 解析ライブラリ JavaXMLDOMAPI: Oracle が提供する標準 DOM 実装。開発者が XML ドキュメントにアクセスして操作できるようにするオブジェクト モデルを提供します。 DocumentBuilderFactoryfactory=D

See all articles