2016-07-16 6 views
-1

json specを見ると、valueが単独で使用できるかどうか、またはobjectまたはarray構造の一部としてのみ許可されるかどうかはわかりません。値を含む最小限のJSONデータ構造

これは有効なJSONです:

[123] 

しかし、この有効なJSONです:値が単独で立つことが許される

123 
+0

コンソールで 'JSON.parse(123)'を試してみてください。 –

+0

@torazaburo私はいくつかのオンラインパーサーとバリデーターを試しましたが、その約半数が有効なJSONではないと言いました。彼らはおそらくサーバー側の言語のための著名なライブラリを使用していますが、それらは異なります。別のブラウザがコンソールで別の答えを出した場合、私はまったく驚くことはありません。それで私は* spec *について尋ねる。 – frnhr

+0

どのオンラインバリデーターですか? –

答えて

0
あなたがリンクされJSON.orgページからリンクされている ECMA-404, The JSON Data Interchange Standard (pdf)パー

、:

A JSONテキストはJSON値の文法に準拠Unicodeコードポイントから形成された一連のトークンです。

そして:

A JSON値は、オブジェクト、配列、数値、文字列、TRUE、FALSE、またはNULLにすることができます。

このように、値123は有効なJSONであり、整数を表します。

+1

'...それはJSON値の文法に準拠しています。 ' - それは、ちょっと驚いた重要なビットです。ありがとう! – frnhr

+0

私は "ECMA-404、The ..."が実際にリンクであることに気付かなかった! :))ユーザビリティの失敗:訪問されたリンクは色が茶色です! – frnhr

0

ルールは数年前に変更されました。

+0

これまでになかったことを私に納得させるには、古いルールを使って古いレファレンスを表示する必要があります。長年私はJSONを使って作業していましたが、オブジェクトや配列の外側に値を置くことは常に可能でした。 – JAAulde

+0

_(私を納得させるためではありません))_ – JAAulde

+0

@JAAulde [rfc4627](https://tools.ietf.org/html/rfc4627)をご覧ください。これはWikipediaの記事でも言及されています。 – vadian

関連する問題