我将字符串数组转换为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个字符。这不是我想要的......
答案 0 :(得分:4)
看来你有通用的json打印机。通常从服务器获取json时,您在客户端上执行的操作是在了解json的外观的基础上实现的。所以你有点奇怪的是,当你包含简单的字符串时,你试图迭代就像数组包含对象文字。
那说你可以添加一个测试,看看obj是否真的是一个对象。
if (typeof obj === 'object') {
// now iterate key/vals
}
如果obj
实际上是对象,则只迭代值。
答案 1 :(得分:3)
因为它只是一个数组:
var data = ["[None]","data","data2"]
for(var x=0;x<data.length;x++) {
alert(data[x])
}