1. ホーム
  2. javascript

[解決済み] JSON.parseが空文字列で失敗するのはなぜですか?重複

2023-01-19 05:23:02

質問

なぜそうなる。

JSON.parse('');

エラーを発生させるか?

Uncaught SyntaxError: Unexpected end of input

を返すだけなら、もっと論理的だと思いませんか? null ?

編集:これはリンク先の質問と重複していません。最小限の有効なjsonのトピックはこの質問に関連していますが、それは"why"に到達していません。

どのように解決するのですか?

空文字列は有効なJSONではないので JSON.parse('') を返すのは正しくありません。 null なぜなら "null" は有効なJSONだからです。

JSON.parse("null");

戻る null . 無効なJSONもnullにパースされるのは間違いです。

空の文字列は有効なJSONではありませんが、2つの引用符は有効なJSONです。これは重要な違いです。

つまり、2つの引用符を含む文字列は、空の文字列と同じものではありません。

JSON.parse('""');

は正しくパースされ、(空の文字列を)返します。しかし

JSON.parse('');

はしません。

有効な最小限のJSON文字列は

空のオブジェクト '{}'

空の配列 '[]'

空の文字列 '""'

数字 例 '123.4'

ブーリアン値true 'true'

ブール値false 'false'

null値 'null'