From bc6d682d1a66a12d276484f1f21c82994cc32675 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Fri, 30 Jul 2021 12:40:19 +0900 Subject: conflicting/Web/JavaScript/Reference/Global_Objects/JSON を削除 (#1555) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 現行版で説明がなされているため --- .../reference/global_objects/json/index.html | 96 ---------------------- 1 file changed, 96 deletions(-) delete mode 100644 files/ja/conflicting/web/javascript/reference/global_objects/json/index.html (limited to 'files/ja/conflicting/web') diff --git a/files/ja/conflicting/web/javascript/reference/global_objects/json/index.html b/files/ja/conflicting/web/javascript/reference/global_objects/json/index.html deleted file mode 100644 index 514b59db12..0000000000 --- a/files/ja/conflicting/web/javascript/reference/global_objects/json/index.html +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: ネイティブ JSON を使う -slug: conflicting/Web/JavaScript/Reference/Global_Objects/JSON -translation_of: Web/JavaScript/Reference/Global_Objects/JSON -translation_of_original: Web/JavaScript/Guide/Using_native_JSON -original_slug: Using_native_JSON ---- -
{{gecko_minversion_header("1.9.1")}}
- -

この文書では、 Gecko 1.9.1 で追加された ECMAScript 5 互換のネイティブ JSON オブジェクトについて説明します。以前のバージョンの Firefox で JSON を扱う際の基本的な情報については、JSON のページをご覧下さい。

- -

ネイティブ JSON オブジェクトは 2 つの重要なメソッドをもっています。JSON.parse() メソッドは JSON 文字列をパースし、 JavaScript のオブジェクトに変換します。JSON.stringify() メソッドは、 JavaScript オブジェクトを JSON 文字列に変換します。

- -
注意:JSON オブジェクトは循環的な構造の変換には対応していません。そのようなオブジェクトを JSON 文字列に変換しようとすると、TypeError 例外が起こります。
- -

JSON 文字列のパース

- -

JSON 文字列を JavaScript オブジェクトに変換するには、以下の例のように JSON 文字列を単純に JSON.parse() に渡すだけで済みます。

- -
var jsObject = JSON.parse(jsonString);
-
- -

JavaScript 1.8.5 (Firefox 4) 以降では JSON.parse() では末尾のカンマを許可しません。

- -
// JavaScript 1.8.5 ではいずれも構文エラーとなります
-var jsObject = JSON.parse("[1, 2, 3, 4, ]");
-var jsObject = JSON.parse("{ \"foo\" : 1, }");
-
- -

オブジェクトを JSON に変換

- -

JavaScript オブジェクトを JSON 文字列に変換するには、オブジェクトをJSON.stringify() メソッドに渡します:

- -
var foo = {};
-foo.bar = "new property";
-foo.baz = 3;
-
-var jsonString = JSON.stringify(foo);
-
- -

jsString'{"bar":"new property","baz":3}' と変換されます。

- -

Firefox 3.5.4 以降では JSON.stringify() オプションの引数で挙動をカスタマイズ可能になります。構文は次の通りです:

- -

jsonString = JSON.stringify(value [, replacer [, space]])

- -
-
value
-
JSON 文字列に変換する JavaScript オブジェクト。
-
replacer
-
文字列化プロセスの振る舞いを変更する関数、または value オブジェクトのプロパティのうち JSON 文字列出力に含めるホワイトリストを指定する String もしくは Number オブジェクトの配列。この値が null もしくは指定されなかった場合、オブジェクトのすべてのプロパティが JSON 文字列の出力に含まれます。
-
space
-
出力される JSON 文字列を読みやすくするために挿入する空白文字を指定する String もしくは Number オブジェクト。Number が指定された場合、ホワイトスペースの空白文字数として扱われます。但し 10 を超える数値を指定しても 10 を指定したものとして扱われます。1 より小さい値を指定するとホワイトスペースは含められません。String が指定された場合、空白文字の代わりにその文字列(または 10 文字を越える場合は最初の 10 文字)が使われます。この値が null もしくは指定されなかった場合、ホワイトスペースは含まれません。
-
- -

replacer パラメータ

- -

replacer パラメータには関数または配列を指定できます。

- -

replacer が関数である場合、文字列化するプロパティのキーと値二つをパラメータとして受け取ります。キーが見つかったオブジェクトは this パラメータとして渡されます。最初空文字列をキー、value パラメータのオブジェクトを値として関数を呼び出します。関数の返り値がオブジェクト(もしくは配列)であれば順次そのプロパティの名前と値を引数として関数を呼び出します。出力される JSON 文字列は関数の返値に応じて次のようになります:

- - - -
注記: 配列の要素を除外するためには replacer は使えません。オブジェクトのプロパティについては undefined または関数を返すとそのプロパティがスキップされますが、関数の要素の場合は null が出力されます。
- -

- -
function replacer(key, value) {
-  if (typeof value === "string") {
-    return undefined;
-  }
-  return value;
-}
-
-var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
-var jsonString = JSON.stringify(foo, replacer);
-
- -

結果として得られる JSON 文字列は {"week":45,"month":7} となります。

- -

replacer が配列である場合、オブジェクトのプロパティのうち JSON 文字列出力に含まれるべきプロパティ名のリストとして扱われます。

- -

参考文献

- - -- cgit v1.2.3-54-g00ecf