44

JSON Web 応答を検討しますか。

"A serialization error occurred"

有効かどうか?

一部のバリデータはそれを受け入れますが、他のバリデータは受け入れません。

4

5 に答える 5

36

新しいJSON RFCに関しては、単一の値のみを含む json はかなり有効です。

JSON テキストはシリアライズされた値です。JSON の特定の以前の仕様では、JSON テキストがオブジェクトまたは配列になるように制約されていたことに注意してください。

于 2014-07-17T13:32:34.703 に答える
29

これについては、 RFC4627RFC7159の間で心変わりがあります。

RFC4627 :

JSON テキストは、シリアル化されたオブジェクトまたは配列です。

  JSON-text = object / array

RFC7159 :

JSON テキストはシリアライズされた値です。JSON の特定の以前
の仕様では、JSON テキストがオブジェクトまたは
配列になるように制約されていたことに注意してください。JSON テキストが必要なオブジェクトまたは配列のみを生成する実装は、すべての 実装がこれらを準拠する JSON テキストとして受け入れる
という意味で相互運用可能です。

  JSON-text = ws value ws

この心の変化について、哲学的または実際的な正当化は提供されていません。以前のバージョンは、単一のリスト要素と単一のマップ要素 (ペアまたはタプル) の両方が含まれていることを一貫して指示しているため、おそらくより理にかなっています。2 番目のバージョンでは、含まれていないリスト要素を 1 つだけ許可します。

于 2014-08-20T23:01:14.413 に答える
17

http://www.json.org/で公開されている文法( Standard ECMA-262 3rd Edition - December 1999 par.5.1.5 The JSON Grammar を参照) によると、それは間違っています:

初期要素は次のようにする必要があります。

ここに画像の説明を入力

ここに画像の説明を入力

そして、値は文字列にすることができます:

ここに画像の説明を入力

于 2012-11-10T02:11:15.213 に答える
1

RFC4627から:

A JSON text is a serialized object or array.
    JSON-text = object / array

IE、ルート要素はオブジェクトまたは配列である必要があり、それ自体で文字列値にすることはできません。

于 2012-11-10T02:00:50.673 に答える
-3

一部のバリデーターがそれを受け入れるかどうかは気にしません。それは間違っています。これは良い習慣の問題です。Json 形式は{"key": "value", .....}. そのテキストJsonを考えると、うまくいくかもしれませんが、残りのプログラマにとっては深刻なJsonではありません. そのテキストのみを使用する場合、Json は必要ありません。

于 2012-11-10T01:46:42.573 に答える