用JSON表示查询字符串?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (120)

我有这个Javascript的数据:

[{id:123,type:"test"},{id:154,type:"another"}]

将如何将其转换为某种内容,以便我可以将其作为HTTPPOST请求传递?

menu[0][id] = 123
menu[0][type] = test
menu[1][id] = 154
menu[1][type] = another

我不想传递实际的JSON数据,我想清理它,并将它作为格式化的HTTP参数传递。

能够在客户端使用类似的东西解析对象,也许你们会在我签署“回答”之前提出更好的建议?

this.serialize = function(elem) {
    var childs = elem.childElements();
    var str = "";
    for(var i=0, item; i<childs.length; i++) {
        item = childs[i];
        str += ((i)?"&":"")+"menu[" + i +"][id]=" + item.id.replace(/item_/,"");
        str += "&menu[" + i +"][type]=" + item.className;
        str += "&menu[" + i +"][section]=" + elem.id;
        str += "&menu[" + i +"][position]=" + i;
    }
    return str;
}
提问于
用户回答回答于

我相信HTTPPOST只接受一个平面的键/值集合,而不是任何任意的JavaScript数据结构。

用户回答回答于

menu0.id=123&menu0.type=test&menu1.id=154&menu1.type=another

这在服务器上很容易解析,因为它是一种常规格式。

扫码关注云+社区

领取腾讯云代金券