JSON 仕様によると、文字列は正当な JSON 値です。
では、なぜこれが起こるのですか?
string
もちろん、有効なJSONではない関数に裸の単語を実際に渡しています。実際に値 "string
を渡すには、JavaScript に注意する必要があります。
これを試して:
JSON.parse("\"string\"")
余分な引用符のペアは、関数に渡す値の一部になるようにエスケープする必要があります。
構文エラーは、「s」が予期しないトークンであることを示しています。文字列は有効な JSON 値ですが、仕様で説明されているように、二重引用符で囲む必要があります。
string
""
" chars "
一般に、JSON.stringify(myValue)
このような値の適切にフォーマットされた JSON 文字列を確認するために使用できます。
JSON の文字列は引用符で囲む必要があるため、 JSON.parse("string")
呼び出しでJSON.parse
は、解析するように要求されたテキストの一部として引用符が "認識" されることはありません。表示される二重引用符は、渡す正当な文字列を形成するために使用されています。これらは、渡すテキストの一部ではありません。
この呼び出しは機能します:
JSON.parse('"s"')