jQuery.getJSON()メソッドを使用してjavascript辞書をサーバーに送信することに大きな問題があります。私はこの辞書はJScriptで宣言した:なぜjQuery.getJSON()はJavaScriptの辞書を平坦化していますか?
data = {'a': 1, b:{'c':2, 'd':3}};
私が呼ぶとき:
{'a':1, 'b[c]':2, 'b[d]':3}.
お知らせサブ辞書が平坦化されたこと:
jQuery.getJSON("myurl", data, callback)
は、サーバーがこれらの値を持つ辞書を受け取ります'b'キーをサブキー 'c'と 'd'と組み合わせることにより、高度にネストされたデータの場合、これは非常に不快です。
私はこれがjavascriptとJSONシリアライズの問題であるかどうか、またはPythonとPyramid(データを受け取るWebフレームワーク)の問題かどうかはわかりません。私はデータを送信する前に文字列化しようとしましたが、Pythonのjsonライブラリを使用して逆シリアル化していますが、エラーが発生するだけです。
お願いします。
本当に一重引用符を使用していますか?その場合は二重引用符で変更してみてください。 "b"にも引用符を入れてください。 –
@ MarkSchultheissこれはJSONではなくJavascriptオブジェクトのリテラルであることに注意してください。一重引用符を使用すると、プロパティ名に引用符をまったく使用しない場合と全く同じです。 – kapa
@bazmegakapa - はい、これがシリアル化されたオブジェクトかリテラルかどうかを質問するのは難しいですが、シリアル化されていません。 –