ホームページ  >  記事  >  ウェブフロントエンド  >  JSON文字列とobjects_json間の変換の詳細説明

JSON文字列とobjects_json間の変換の詳細説明

WBOY
WBOYオリジナル
2016-05-16 15:57:551145ブラウズ

JSON (JavaScript Object Notation) は、JavaScript プログラミング言語のサブセットです。 JSON は JavaScript のサブセットであるため、この言語で明らかに使用できます。

eval 関数 JSON テキストをオブジェクトに変換します

JSON テキストをオブジェクトに変換するには、eval 関数を使用できます。 eval 関数は JavaScript エディターを呼び出します。 JSON は JavaScript のサブセットであるため、コンパイラーはテキストを正しく解析し、オブジェクト構造を生成します。 JavaScript 構文の曖昧さを避けるために、テキストはかっこで囲む必要があります。
var obj = eval('(' JSONTest ')'); eval 関数は非常に高速です。あらゆる JavaScript プログラムをコンパイルして実行できるため、セキュリティ上の問題が発生します。 eval 関数は、信頼できる完全なソース コードを使用する場合にのみ使用してください。これにより、JSON テキストをより安全に解析できるようになります。 XmlHttp を使用する Web アプリケーションの場合、ページ間の通信は同じオリジンのみを許可するため、信頼できます。しかし、それは完璧ではありません。サーバーに厳密な JSON エンコードがない場合、または厳密な入力検証がない場合、危険なスクリプトを含む無効な JSON テキストが送信される可能性があります。 eval 関数は悪意のあるスクリプトを実行します。

JSON インタープリター JSON.parse、JSON.stringify

JSON パーサーを使用すると、JSON テキストをオブジェクトに変換する eval 関数などのセキュリティ リスクを防ぐことができます。 JSON パーサーは JSON テキストのみを認識し、すべてのスクリプトを拒否します。ネイティブ JSON サポートを提供するブラウザーは、eval 関数よりもはるかに高速な JSON パーサーを備えています。

現在、Firefox、Opera、IE8 以降でもローカル JSON サポートが提供されています。このうち、JSON インタープリターが提供する関数は、JSON.parse、JSON.stringify です。

ネイティブ JSON サポートを提供しないブラウザの場合は、スクリプト json2.js を導入して JSON 変換機能を実装できます。 json2.js スクリプトは、https://github.com/douglascrockford/JSON-js/blob/master/json2.js ページからダウンロードできます。

JSON.parse 関数

JSON テキストをオブジェクトに変換します。
JSON.parse(text[, reviver])
パラメータ
テキスト
必須。オブジェクトに変換される JSON テキスト。
リバイバー
オプション。このパラメータは置換関数です。変換では、トラバースされるノードごとにこの関数が実行され、関数の戻り値が変換結果の対応するノード値を置き換えます。

JSON.stringify 関数

オブジェクトを JSON テキストに変換します。
JSON.stringify(value[, replacer[, space]])
パラメータ
テキスト
必須。 JSON テキストに変換されるオブジェクト。
リバイバー
オプション。このパラメータは置換関数です。変換では、トラバースされるノードごとにこの関数が実行され、関数の戻り値が変換結果の対応するノード値を置き換えます。
スペース
オプション。フォーマットされた出力 JSON テキストをインデントするスペースの数。このパラメータが指定されていない場合、出力はフォーマットされません。
パラメータリバイバーのデリゲート型
リバイバー(キー, 値)
reviver 関数のこれは、現在通過しているノードの親ノードです。ルート ノードをトラバースする場合、親ノードは Object オブジェクト、ルート ノードはオブジェクトの属性、属性名は空の文字列になります。
パラメータ
キー
親ノードが配列オブジェクトの場合、キーは配列インデックスであり、それ以外の場合、キーはオブジェクトのプロパティ名です。

ノード値。
注: JSON は循環データ構造をサポートしていません。

jQuery.parseJSON( jsonTex )

jQuery には、文字列を JSON 形式に変換するメソッド jQuery.parseJSON(json) もあり、標準形式の JSON 文字列を受け入れ、解析された JavaScript (JSON) オブジェクトを返します。もちろん、興味があれば、jQuery 拡張機能を自分でカプセル化することもできます。 jQuery.stringifyJSON(obj) は JSON を文字列に変換します。

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。