我有一个类似于socket的数据结构。
我想将变量s的"a"、"b"、"c"和"e"键存储到数据库表中,以便之后可以重新构建它们。我通过jQuery Ajax POST发送了变量s。这些值将被插入并存储为纯文本(除了"b",它始终是一个数字)。
这是我遇到的问题。在Firebug中,我可以看到我的帖子参数...它们真的很混乱。似乎数据已经在每个元素的级别上序列化(有点像深度序列化),而我希望得到类似于...的东西。
更新:相反,我收到以下内容(我已经取消转义下面的字符串以使其更易读)
也许我做这件事的方式不对,请随意指导我更好的方法。
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]
}
}
}
};
我想将变量s的"a"、"b"、"c"和"e"键存储到数据库表中,以便之后可以重新构建它们。我通过jQuery Ajax POST发送了变量s。这些值将被插入并存储为纯文本(除了"b",它始终是一个数字)。
ajax: {
url: uri,
type: "POST",
data: s,
dataType: "json",
success: function(data, status) { .. }
}
这是我遇到的问题。在Firebug中,我可以看到我的帖子参数...它们真的很混乱。似乎数据已经在每个元素的级别上序列化(有点像深度序列化),而我希望得到类似于...的东西。
e={"f":{"g":{"h":[1,0,-2.1,1.43]}},"i":{"j":{"k":[-3.2,3.003,0,0]}}}
更新:相反,我收到以下内容(我已经取消转义下面的字符串以使其更易读)
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
也许我做这件事的方式不对,请随意指导我更好的方法。
jQuery
只会进行URI编码以使其足够安全地通过HTTP传输。我认为它不会对字符串进行编码。 - ShankarSangolivar str = ""; for (var i in s) {str += i + "=" + (typeof(s[i]) == "object" ? JSON.stringify(s[i]) : S[i]) + "&";}
- punkish