【发布时间】:2020-01-13 07:55:12
【问题描述】:
我有一个具有以下数据结构的对象。我正在尝试通过执行以下操作将此对象转换为参数字符串。
当我的代码 sn-p 在调试器中运行时,我在控制台中看不到错误,但由于某种原因它过早地提交了表单,并且在 URL 中我可以看到我的参数被发布并停止我的其余部分脚本。 Object,keys 看起来不正确,正在调试器中生成以下内容。
keys
(273) ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", * "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "9 3", "94", "95", "96", "97", "98", "99", CJ
• [0 99]
• [100 199]
• [200 272]
length: 273
• proto : Array(0)
获取下面的对象并将其转换为参数字符串以通过 ajax 发送的最佳方法是什么?
我希望返回一个参数字符串,如下所示 ip=111.111.111.111&hostname=rr.com&city=mycity 等等。
下面是我的 ipinfo 对象
{"ip":"111.111.111.111","hostname":"rr.com","city":"MyCity","region":"Ohio","country":"US","loc":"41.34.23","org":"Inc","postal":"1234","timezone":"America/New_York","readme":"https://www.google.com"}"
var myKeys = Object.keys(ipinfo);
var queryString = "";
for (var i = 0; i < myKeys.length; i++) {
var theKey = ipinfo[i];
if (queryString !== "") queryString += "&";
queryString += theKey + "=" + JSON.Stringify(ipinfo[theKey]);
}
【问题讨论】:
标签: javascript jquery arrays json javascript-objects