JSON Web 応答を検討しますか。
"A serialization error occurred"
有効かどうか?
一部のバリデータはそれを受け入れますが、他のバリデータは受け入れません。
新しいJSON RFCに関しては、単一の値のみを含む json はかなり有効です。
JSON テキストはシリアライズされた値です。JSON の特定の以前の仕様では、JSON テキストがオブジェクトまたは配列になるように制約されていたことに注意してください。
これについては、 RFC4627とRFC7159の間で心変わりがあります。
RFC4627 :
JSON テキストは、シリアル化されたオブジェクトまたは配列です。
JSON-text = object / array
RFC7159 :
JSON テキストはシリアライズされた値です。JSON の特定の以前
の仕様では、JSON テキストがオブジェクトまたは
配列になるように制約されていたことに注意してください。JSON テキストが必要なオブジェクトまたは配列のみを生成する実装は、すべての 実装がこれらを準拠する JSON テキストとして受け入れる
という意味で相互運用可能です。JSON-text = ws value ws
この心の変化について、哲学的または実際的な正当化は提供されていません。以前のバージョンは、単一のリスト要素と単一のマップ要素 (ペアまたはタプル) の両方が含まれていることを一貫して指示しているため、おそらくより理にかなっています。2 番目のバージョンでは、含まれていないリスト要素を 1 つだけ許可します。
http://www.json.org/で公開されている文法( Standard ECMA-262 3rd Edition - December 1999 par.5.1.5 The JSON Grammar を参照) によると、それは間違っています:
初期要素は次のようにする必要があります。
そして、値は文字列にすることができます:
RFC4627から:
A JSON text is a serialized object or array. JSON-text = object / array
IE、ルート要素はオブジェクトまたは配列である必要があり、それ自体で文字列値にすることはできません。
一部のバリデーターがそれを受け入れるかどうかは気にしません。それは間違っています。これは良い習慣の問題です。Json 形式は{"key": "value", .....}
. そのテキストJsonを考えると、うまくいくかもしれませんが、残りのプログラマにとっては深刻なJsonではありません. そのテキストのみを使用する場合、Json は必要ありません。