Tôi có một cấu trúc dữ liệu như ổ cắmserializing một gói dữ liệu JSON trong một 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]
}
}
}
};
Tôi muốn để lưu trữ các "a", "b", "c" và "e" chìa khóa của biến s
trong bảng cơ sở dữ liệu để tôi có thể tái tạo lại chúng. Tôi đang gửi s
qua một jQuery Ajax POST. Các giá trị sẽ được chèn vào và được lưu trữ dưới dạng văn bản thuần túy (ngoại trừ "b" luôn là số).
ajax: {
url: uri,
type: "POST",
data: s,
dataType: "json",
success: function(data, status) { .. }
}
Đây là vấn đề tôi đang gặp phải. Trong Firebug, tôi có thể thấy các thông số đăng bài của mình… chúng thực sự bị rối tung lên. Có vẻ như các dữ liệu đã được xuất bản ở cấp độ của mỗi yếu tố (kinda giống như một serialization sâu) trong khi tôi đã hy vọng cho một cái gì đó giống như
e={"f":{"g":{"h":[1,0,-2.1,1.43]}},"i":{"j":{"k":[-3.2,3.003,0,0]}}}
Cập nhật: Thay vào đó, tôi nhận được sau đây (tôi đã không thoát trên các chuỗi bên dưới để dễ đọc hơn)
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
Có lẽ tôi đang làm điều này sai, vì vậy hãy hướng dẫn tôi một cách tốt hơn.
+1, đặc biệt là để liên kết đến JSON2.js cho các trình duyệt cũ. –
Tôi khá chắc chắn bạn sẽ mã hóa đôi đối tượng dữ liệu đó, vì bạn đang gọi stringify trên s – Joe
Nếu giá trị dữ liệu là một chuỗi, 'jQuery' chỉ thực hiện mã hóa URI để làm cho nó đủ an toàn để chuyển qua HTTP. Tôi không nghĩ như vậy nó sẽ mã hóa chuỗi. – ShankarSangoli