例:次のコードは JSON Spec に対して有効ですか?
{
precision: "Zip"
}
または、常に次の構文を使用する必要がありますか? (もしそうなら、なぜ?)
{
"precision": "Zip"
}
JSON仕様でこれについて何かを実際に見つけたことはありません。例ではキーの周りに引用符を使用していますが。
はい、引用符が必要です。これは、JavaScriptを予約済みのキーワード、つまり{for:"foo"}
に別のエスケープメソッドを持たせることを簡単にするためです。
キーとして文字列を使用するのは正しいことです。以下はRFC 4627-JavaScript Object Notation(JSON)のapplication/jsonメディアタイプからの抜粋です
2.2。オブジェクト
オブジェクト構造は、0個以上の名前/値のペア(またはメンバー)を囲む中括弧のペアとして表されます。 名前は文字列です。各名前の後に単一のコロンが続き、名前と値を区切ります。単一のコンマは、値を次の名前から分離します。オブジェクト内の名前は一意である必要があります。
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全体を読む こちら .
2.2。オブジェクトから
オブジェクト構造は、0個以上の名前/値のペア(またはメンバー)を囲む中括弧のペアとして表されます。名前は文字列です。
および2.5。文字列
文字列は引用符で始まり、引用符で終わります。
だから私は標準に従ってと言うでしょう:はい、あなたは常にキーを引用する必要があります(ただし、一部のパーサーはより寛容かもしれませんが)
はい、引用符は必須です。 http://json.org/ 言う:
string
""
" chars "