の異なる実装間の奇数の違いに着目さんは、私はこのようなかなりのネストされたJSオブジェクトを持っていると私はそれをJSON-エンコードするために必要としましょう:JSON.stringify
var foo = {
"totA": -1,
"totB": -1,
"totC": "13,052.00",
"totHours": 154,
"groups": [
{"id": 1,
"name": "Name A",
"billingCodes": [
{"bc": "25", "type": "hours", "hours": "5", "amount": "$25.00"}
]}
]
};
Iネイティブを使用してJSONをエンコードした場合ブラウザJSON.stringify
(クロム、Firefoxの、IE9/10でテスト)、私は(私が何を期待している)、バックのようになりますJSON文字列を取得:
Native JSON.stringify JSFiddle example
{
"totA": -1,
"totB": -1,
"totC": "13,052.00",
"totHours": 154,
"groups": [
{
"id": 1,
"name": "Name A",
"billingCodes": [
{
"bc": "25",
"type": "hours",
"hours": "5",
"amount": "$25.00"
}
]
}
]
}
PrototypeJSまたはjson2.jsのいずれかのページで同じことをしようとすると奇妙なことが起こります。その場合
、JSON.stringify
同じオブジェクトは私に次のようなJSONバック与えに:明らか
ProtypeJS JSON.stringify JSFiddle example
{
"totA": -1,
"totB": -1,
"totC": "13,052.00",
"totHours": 154,
"groups": "[{\"id\": 1, \"name\": \"Name A\", \"billingCodes\": [{\"bc\": \"25\", \"type\": \"hours\", \"hours\": \"5\", \"amount\": \"$25.00\"}]}]"
}
をそれがJSONデコードしないので、上記の問題であり、もともとJSON.stringify
に渡されたものと同じです。
誰でも何が起こっているのか、なぜこの違いがあるのかを詳しく説明できますか?
私には何が欠けていますか?
これはバグかもしれないようですが、プロトタイプ1.7.1を使用するようにフィドルを変更すると、期待される結果が得られるようです。これを見てください:https://github.com/bestiejs/json3/issues/8 – HBP
JSONは 'groups'配列全体をエンコードしたようです。 –
重複していますか? http://stackoverflow.com/questions/710586/json-stringify-bizarreness ...その質問の答えから、 'Array.prototype.toJSON'を削除してください。 –