266

例: 次のコードはJSON Specに対して有効ですか?

{
    precision: "zip"
}

または、常に次の構文を使用する必要がありますか? (もしそうなら、なぜですか?)

{
    "precision": "zip"
}

JSON仕様でこれについて何かを実際に見つけていません。ただし、例ではキーの周りに引用符を使用しています。

4

7 に答える 7

163

はい、引用符が必要です。これは、より単純にするためであり、javascript の予約済みキーワード、つまり{for:"foo"}.

于 2009-06-04T09:26:03.107 に答える
141

文字列をキーとして使用するのは正しいです。以下は RFC 4627 からの抜粋です - The application/json Media Type for JavaScript Object Notation (JSON)

2.2. オブジェクト

オブジェクト構造は、0 個以上の名前と値のペア (またはメンバー) を囲む中かっこのペアとして表されます。 名前は文字列です。各名前の後にコロンを 1 つ付けて、名前と値を区切ります。単一のコンマは、値とそれに続く名前を区切ります。オブジェクト内の名前は一意である必要があります。

object = begin-object [ member *( value-separator member ) ] end-object

member = string name-separator value

[...]

2.5。ストリングス

文字列の表現は、プログラミング言語の C ファミリーで使用される規則に似ています。文字列は引用符で始まり、引用符で終わります。[...]

string = quotation-mark *char quotation-mark

quotation-mark = %x22 ; "

ここでRFC全体を読んでください。

于 2009-06-04T09:28:59.577 に答える
15

2.2から。オブジェクト

オブジェクト構造は、0 個以上の名前と値のペア (またはメンバー) を囲む中かっこのペアとして表されます。名前は文字列です。

そして2.5から。ストリングス

文字列は引用符で始まり、引用符で終わります。

したがって、標準によれば、はい、常にキーを引用する必要があります(一部のパーサーはより寛容かもしれませんが)

于 2009-06-04T09:29:12.307 に答える
7

はい、引用符は必須です。http://json.org/言います:

string
    ""
    " chars "
于 2009-06-04T09:25:41.690 に答える