首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript - Iterate无键JSON

Javascript - Iterate无键JSON
EN

Stack Overflow用户
提问于 2011-08-31 00:23:01
回答 2查看 336关注 0票数 1

我将字符串数组转换为JSON。看起来像是

var data = ["[None]","data","data2"]

因此,没有键/值对。这会导致我的JSON迭代失败:

代码语言:javascript
复制
      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 )吗?Or..what你有什么建议吗?

在从大家那里学到一些东西之后,我仍然不能迭代数据对象。

代码语言:javascript
复制
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个字符。这不是我想要的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-31 00:34:58

因为它只是一个数组:

代码语言:javascript
复制
var data = ["[None]","data","data2"]
for(var x=0;x<data.length;x++) {
     alert(data[x])  
}
票数 3
EN

Stack Overflow用户

发布于 2011-08-31 00:27:30

看来你有一个通用的json打印机。通常,当从服务器获取json时,您在客户端所做的操作是在知道json将是什么样子的情况下实现的。因此,当数组包含简单字符串时,尝试迭代就好像数组包含对象字面量一样,这有点奇怪。

也就是说,您可以添加一个测试来查看obj是否真的是一个对象。

代码语言:javascript
复制
if (typeof obj === 'object') {
   // now iterate key/vals
}

只有当你的obj实际上是一个对象时,才会迭代值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7246465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档