我该怎么转......
{
'name': 'John',
'surname': 'Smith'
}
......进入这个?
name=John&surname=Smith
我正在尝试通过AJAX将JSON发送到服务器
谢谢
答案 0 :(得分:2)
一般(即没有任何JS框架)......
var o = {'name': 'John', 'surname': 'Smith'};
var q = [];
for (p in o) {
if (o.hasOwnProperty(p)) {
q.push( encodeURIComponent(p) + "=" + encodeURIComponent(o[p]) );
}
}
q = q.join("&"); // "name=John&surname=Smith"
正如评论中的人已经指出的那样,这仅适用于扁平的非嵌套对象。对于高级用途,我强烈建议执行HTTP post操作并将未修改的对象作为JSON字符串发送。
所有JS库都提供了一种将对象转换为JSON的方法,还有其他方法可以序列化对象,例如Douglas Crockford自己在http://json.org/js.html的实现。
答案 1 :(得分:0)
var jsoncode = {
'name': 'John',
'surname': 'Smith'
};
var querystring = 'name=' + encodeURI(jsoncode.name) + '&surname=' + encodeURI(jsoncode.surname);
答案 2 :(得分:0)
有很多方法可以做到这一点,但最简单的方法是为对象编写一个迭代器:
var propstr = "?";
for (prop in jsonCode) {
if (jsonCode.hasOwnProperty(prop)) {
propstr += prop + "=" + jsonCode[prop] + "&"
}
}
答案 3 :(得分:0)
首先,您使用的是任何JavaScript库吗? (jquery,原型等......)。如果你在那里有某些功能可以做到这一点。
否则你可以使用类似的东西:
var urlParams = '?';
var index = 0;
for(var key in obj){
If(index != 0) urlParams += '&';
urlParams += key + '='+obj[key];
}