繁体   English   中英

Javascript-迭代无键JSON

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM