2

JSONのラベルにはさまざまな標準があるようです。JSONオブジェクトラベルの周りに引用符が必要なものもあれば、そうでないものもあります。誰かが標準が何であるか教えてもらえますか?

引用は悪いキャンプです

クロム

{"label":1111}--SyntaxError :予期しないトークン:

{label:1111}-作品

Firefox

{"label":1111}-SyntaxError :無効なラベル

{label:1111}-作品

引用は良いキャンプです

JSLint

{"video_id":1111}--JSON :良い。

{video_id:1111}--JSON :悪い。文字列が必要で、代わりに「video_id」が表示されました

PHP

echo json_encode(array('label' => 1111));
{"label":1111}
4

1 に答える 1

13

標準では、JSON を JSON として解析します。

JSON 言語では (Javascript とは異なり)、常にすべてのプロパティ名を二重引用符で囲む必要があります。

JSON を Javascriptステートメントとして解析しようとすると、構文エラーが発生します。は{}ステートメント ブロックとしてlabel:解析され、 は GOTO ターゲットとして解析されます。
ステートメント ラベルには引用符を付けることができないため、構文エラーが発生します。

JSON リテラルを括弧で囲んで Javascript に強制的に式として解析させると、そのエラーは発生しません。

于 2013-01-16T19:08:24.410 に答える