I mają strukturę danych, takich jak gniazdaszeregowania pakietów danych JSON w jQuery Ajax POST
var s = {
"a": "foo",
"b": 5,
"c": {"d": "a long string"},
"e": {
"f": {
"g": {
"h": [1, 0, -2.1, 1.43]
}
},
"i": {
"j": {
"k": [-3.2, 3.003, 0, 0]
}
}
}
};
I mają być przechowywane "a", "b", "c" i "E" klucze zmienna s
w tabeli bazy danych, dzięki czemu mogę zrekonstruować je ponownie. Wysyłam s
za pośrednictwem posta jQuery Ajax. Wartości będą wstawiane i przechowywane jako zwykły tekst (z wyjątkiem "b", który jest zawsze liczbą).
ajax: {
url: uri,
type: "POST",
data: s,
dataType: "json",
success: function(data, status) { .. }
}
Oto problem, który napotykam. W Firebug widzę moje parametry posta ... są naprawdę pomieszane. Wygląda na to, że dane zostały w odcinkach na poziomie każdego elementu (trochę jak głębokim serializacji), a ja liczyłem na coś jak
e={"f":{"g":{"h":[1,0,-2.1,1.43]}},"i":{"j":{"k":[-3.2,3.003,0,0]}}}
Aktualizacji: Zamiast, ja otrzymuję następujący (mam Niecytowany ciąg poniżej więc jest bardziej czytelny)
a=foo&b=5&c[d]=a long string&e[f][g][h][]=1&e[f][g][h][]=0&e[f][g][h][]=-2.1&e[f][g][h][]=1.43
Może robie to w niewłaściwy sposób, więc nie krępuj się poprowadzić mnie lepszy sposób.
+1, szczególnie w przypadku łączenia z JSON2.js w starszych przeglądarkach. –
Jestem dość pewny, że zamierzasz podwójnie zakodować ten obiekt danych, ponieważ wywołujesz stringify na s – Joe
Jeśli wartość danych jest łańcuchem, 'jQuery' po prostu koduje URI, aby był wystarczająco bezpieczny do przesyłania przez HTTP. Nie sądzę, że zakoduje łańcuch. – ShankarSangoli