4

JSON 仕様によると、文字列は正当な JSON 値です。

ここに画像の説明を入力

では、なぜこれが起こるのですか?

4

3 に答える 3

11

stringもちろん、有効なJSONではない関数に裸の単語を実際に渡しています。実際に "stringを渡すには、JavaScript に注意する必要があります。

これを試して:

JSON.parse("\"string\"")

余分な引用符のペアは、関数に渡す値の一部になるようにエスケープする必要があります。

于 2013-08-07T06:28:50.857 に答える
1

構文エラーは、「s」が予期しないトークンであることを示しています。文字列は有効な JSON 値ですが、仕様で説明されているように、二重引用符で囲む必要があります。

string
  ""
  " chars "

一般に、JSON.stringify(myValue)このような値の適切にフォーマットされた JSON 文字列を確認するために使用できます。

于 2013-08-07T06:30:40.033 に答える
0

JSON の文字列は引用符で囲む必要があるため、 JSON.parse("string")呼び出しでJSON.parseは、解析するように要求されたテキストの一部として引用符が "認識" されることはありません。表示される二重引用符は、渡す正当な文字列を形成するために使用されています。これらは、渡すテキストの一部ではありません。

この呼び出しは機能します:

JSON.parse('"s"')
于 2013-08-07T06:39:03.777 に答える