![](/img/trans.png)
[英]JavaScript | Iterate through JSON Object and get all the values for a specific key
[英]Javascript - Iterate key-less JSON
我将字符串数组转换为JSON。 看起来像
var data = ["[None]","data","data2"]
因此,没有键/值对。 这导致我的JSON迭代炸毁:
for (var i = 0; i < data.length; i++) {
var obj = data[i];
alert(obj);
for (var key in obj) {
var attrName = key;
var attrValue = obj[key];
alert('key: ' + attrName + 'value: ' + attrValue);
}
}
我是否应该想出一种方法来键控每个对象( javascriptserializer从字符串数组创建此JSON)? 或者..你有什么建议?
for (var i = 0; i < data.length; i++) { var obj = data[i]; alert(typeof obj); if (typeof obj === 'object') { alert(obj); for (var key in obj) { var attrName = key; var attrValue = obj[key]; alert('key: ' + attrName + 'value: ' + attrValue); } } else { alert(data[i]); } }
我击中else
,但是它一次通过数组1个字符。 这不是我想要的...
看来您有通用json打印机。 通常,当从服务器获取json时,在客户端上执行的操作是根据json的外观来实现的。 因此,当您尝试迭代包含简单字符串的数组时,就好像数组包含对象文字一样,这有点奇怪。
也就是说,您可以添加测试以查看obj是否确实是一个对象。
if (typeof obj === 'object') {
// now iterate key/vals
}
并且仅当obj
实际上是一个对象时才迭代这些值。
由于它只是一个数组:
var data = ["[None]","data","data2"]
for(var x=0;x<data.length;x++) {
alert(data[x])
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.