Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

JSON.isRawJSON()

Limited availability

JSON.isRawJSON() は静的メソッドで、ある値がJSON.rawJSON() から返されるオブジェクトであるかどうかを検査します。

構文

js
JSON.isRawJSON(value)

引数

value

検査する値です。

返値

valueJSON.rawJSON() で作成されたものであればtrue です。そうでなければfalse です。

解説

「生の JSON」オブジェクトは、 JSON にシリアライズされたとき、すでに JSON の一部であるかのように扱われます。さらに、JSON.rawJSON() が動作するので、生の JSON は構文的に有効な JSON であることが保証されます。生の JSON オブジェクトの形状と動作の詳細情報については、JSON.rawJSON() を参照してください。このメソッドは、他のシリアライズライブラリーが生の JSON オブジェクトに対してJSON.stringify() と同様の動作を実装できるようにするために存在します。

JSON.isRawJSON() の使用

次の例は、JSON.isRawJSON() を使用して、オブジェクトがJSON.rawJSON() によって返されたかどうかを検査する方法を示します。データを YAML 風の形式にシリアライズするカスタムシリアライザーを実装しています。

js
function mySerializer(value, indent = "") {  if (typeof value !== "object" || value === null) {    return JSON.stringify(value);  }  if (JSON.isRawJSON(value)) {    return value.rawJSON;  }  const subIndent = `${indent}  `;  if (Array.isArray(value)) {    return `- ${value.map((v) => mySerializer(v, subIndent)).join(`\n${indent}- `)}`;  }  return Object.entries(value)    .map(([key, value]) => {      const subValue = mySerializer(value, subIndent);      if (subValue.includes("\n")) {        return `${key}:\n${subIndent}${subValue}`;      }      return `${key}: ${subValue}`;    })    .join(`\n${indent}`);}console.log(  mySerializer({    name: "Josh",    userId: JSON.rawJSON("12345678901234567890"),    friends: [      { name: "Alice", userId: JSON.rawJSON("9876543210987654321") },      { name: "Bob", userId: JSON.rawJSON("56789012345678901234") },    ],  }),);// name: "Josh"// userId: 12345678901234567890// friends://   - name: "Alice"//     userId: 9876543210987654321//   - name: "Bob"//     userId: 56789012345678901234

もしこの例でuserId の値をJSON.rawJSON() で作成せず、直接数値として渡していた場合、 JavaScript の浮動小数点数の制限により、精度が低下してしまいます。

js
console.log(  mySerializer({    name: "Josh",    userId: 12345678901234567890,    friends: [      { name: "Alice", userId: 9876543210987654321 },      { name: "Bob", userId: 56789012345678901234 },    ],  }),);// name: "Josh"// userId: 12345678901234567000// friends://   - name: "Alice"//     userId: 9876543210987655000//   - name: "Bob"//     userId: 56789012345678900000

仕様書

Specification
JSON.parse source text access
# sec-json.israwjson

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp