所以我发送的JSON看起来像这样:
[
{
"Datum": "textholder1",
"Bedrag": "",
"Rekening": "",
"Tegenrekening": "",
"Naam": "",
"Omschrijving": ""
},
{
"Datum": "textholder2",
"Bedrag": "",
"Rekening": "",
"Tegenrekening": "",
"Naam": "",
"Omschrijving": ""
}
]
通过POST到服务器,当我检索它时,它看起来像这样:
{
"json[1][Omschrijving]": [""],
"json[1][Rekening]": [""],
"json[0][Datum]": ["textholder1"],
"json[1][Tegenrekening]": [""],
"json[0][Rekening]": [""],
"json[0][Bedrag]": [""],
"json[0][Naam]": [""],
"json[1][Naam]": [""],
"json[0][Tegenrekening]": [""],
"json[1][Bedrag]": [""],
"json[0][Omschrijving]": [""],
"json[1][Datum]": ["textholder2"]
}
因此,您可以看到它将内部对象转换为json[index]
而不是保持其格式。这是正常行为还是我在这里做错了什么?这就是我检索数据的方式:
inputData = request.POST
userDataList = dict(inputData.lists())
print userDataList # prints the funny formatted JSON
print type(userDataList) # dict
print type(inputData) # django.http.request.QueryDict
如何播种服务器:
frm = $("#textCSVForm");
frm.submit(function(event) {
event.preventDefault()
$.ajax({
url: frm.attr('action'),
type: frm.attr('method'),
dataType: '',
data: {
json: json.data
},
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
})
.done(function(response) {
})
.fail(function() {})
.always(function() {
console.log(json.data); // logs the first formatted JSON
});
});
答案 0 :(得分:1)
以下是您通过Django发送和接收JSON的方式。
这样的Ajax调用:
var t = {
'foo': 1,
'bar': 2,
};
$.ajax({
url: 'localhost',
type: 'POST',
data: {
'data': JSON.stringify(t),
},
});
Django看起来像这样:
def test(request):
import json
print(json.loads(request.POST['data']))
return HttpResponse('ok')