[英]Converting a JSON object into JS array
这是我在json_encode
之后从Wordpress数据库获得的jQuery响应信息:
[{ "id" : "33", "first_name" : "Oleg", "last_name" : "Smith" }]
因为它本质上是多维的,但是只有一行,因此两端都有方括号。
因此,我在尝试解析然后转换为JS数组时在SO上找到的所有方法均失败,例如
for(var x in parsed){
arr.push(parsed[x]);
}
要么
var arr = $.map(obj, function(el) { return el; });
要么
var arr = Object.keys(obj).map(function(k) { return obj[k] });
要么
for(var i in JsonObj) {
if(JsonObj.hasOwnProperty(i) && !isNaN(+i)) {
array[+i] = JsonObj[i];
}
}
我可以手动移除方括号并继续操作,也可以手动推动每个项目:
aaData.push(searchObj[0].first_name);
但是我不喜欢我拥有的任何一种解决方案。 我还有其他选择吗?
PS。 我需要一个JS数组,以便可以使用[i]
循环。
您可以执行以下操作将所有值推送到aaData数组:
var parsed = [{ "id" : "33", "first_name" : "Oleg", "last_name" : "Smith" }];
var aaData = [];
for(key in parsed[0]) { aaData.push(parsed[0][key]); }
因此,现在aaData中有“ 33”,“ Oleg”,“ Smith”,您可以通过索引进行访问:
aaData[0] will give you 33
aaData[1] will give you Oleg, etc
听起来您希望能够处理searchObj数组中有多个元素的情况。 在这种情况下,您可以遍历数组的所有元素并将其推入每个元素:
for (var i = 0; i < searchObj.length; i++) {
aaData.push(searchObj[i].first_name);
}
当只有一个元素时,将仅推入一个元素。
您可以解析JSON,然后遍历数据,将每个项目插入集合数组,如下所示:
var parsedData = JSON.parse(responseData);
parsedData.forEach(function (item) {
arrayCollection.push(item);
}
这个也可以在较旧的浏览器上运行:
var parsedData = $.parseJSON(responseData);
$.each(parsedData, function (index, item) {
arrayCollection.push(item);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.