我将字符串数组转换为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 )吗?Or..what你有什么建议吗?
在从大家那里学到一些东西之后,我仍然不能迭代数据对象。
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个字符。这不是我想要的。
发布于 2011-08-31 00:34:58
因为它只是一个数组:
var data = ["[None]","data","data2"]
for(var x=0;x<data.length;x++) {
alert(data[x])
}发布于 2011-08-31 00:27:30
看来你有一个通用的json打印机。通常,当从服务器获取json时,您在客户端所做的操作是在知道json将是什么样子的情况下实现的。因此,当数组包含简单字符串时,尝试迭代就好像数组包含对象字面量一样,这有点奇怪。
也就是说,您可以添加一个测试来查看obj是否真的是一个对象。
if (typeof obj === 'object') {
// now iterate key/vals
}只有当你的obj实际上是一个对象时,才会迭代值。
https://stackoverflow.com/questions/7246465
复制相似问题