So bin das Senden ich eine JSON, das wie folgt aussieht:Wie JSON zu handhaben zu JSON QueryDict
[
{
"Datum": "textholder1",
"Bedrag": "",
"Rekening": "",
"Tegenrekening": "",
"Naam": "",
"Omschrijving": ""
},
{
"Datum": "textholder2",
"Bedrag": "",
"Rekening": "",
"Tegenrekening": "",
"Naam": "",
"Omschrijving": ""
}
]
an den Server via POST und wenn ich es abrufen, sieht es wie folgt aus:
{
"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"]
}
So wie Sie sehen können, wandelt es die inneren Objekte in json[index]
um, anstatt sein Format zu behalten. Ist das normales Verhalten oder mache ich hier etwas falsch? Dies ist, wie ich die Daten abrufen:
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
Wie im Seeding auf dem Server:
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
});
});
Warum Sie es auf eine Liste drehen? – Rishav
@Rishav beziehen Sie sich auf die '' '.lists()' ''? Es gibt keinen Unterschied in der Ausgabe mit oder ohne es nach meinen Testergebnissen. Aber ich habe keinen besonderen Grund, warum ich '' '.lists()' '' Ich habe es versucht, weil es ein Array mit Objekten ist. – Kevin
Wie senden Sie die Daten an den Server? – Rishav