DjangoでPOSTされたjsonオブジェクトを処理する方法を理解しようとしています。jsonオブジェクトをサーバーにPOSTしていて、Pythonディクショナリのように使用したいと思います。
これが私のjsです:
$.post(
"/projects/vote/",
obj,
function(data) {
//alert("Data Loaded: " + data);
alert(data["msg"]);
});
私が返すもの(djangoビューの終わり):
return HttpResponse(json.dumps(foo), mimetype="application/json")
どこ
foo = {"msg": str(postdata)}
つまり、jsonオブジェクトをサーバーにPOSTし、サーバーで取得したpythonオブジェクトの文字列にアラートを送信して、何が起こっているかを確認できるようにします。
私のオブジェクトが次の場合:
var obj = {
'bulk': false,
'data': {
'chosen': '14',
'proj1': '15',
'proj2': '14',
'proj3': '16',
'more': false,
},
'data2': [
{
'a': 'apple'
},
{
'b': 'banana'
},
],
}
私はこれをお返しに受け取ります:
<QueryDict: {u'data[proj3]': [u'16'], u'data[proj2]': [u'14'], u'data[chosen]': [u'14'], u'data[proj1]': [u'15'], u'bulk': [u'false'], u'data2[0][a]': [u'apple'], u'data[more]': [u'false'], u'data2[1][b]': [u'banana']}>
jsonobjとpythondictの構造が一致しないのはなぜですか?そして、どうすれば構造を同じにすることができますか?たとえば、data2 [0] [a]の代わりに、別の辞書のキーとしてdata2を取得します
ポストデータの取得方法:
# django version 1.4
postdata = request.POST.copy()