需求
在代码中, 会遇到这样的问题:
有时,后台传来的是
[{"id":001,"name":"张三"},{"id":002,"name":"李四"}]
但只有一条数据时: {"id":001,"name":"张三"}
当我们用 for(var i in json)时, 如果是第一种形式, 那没什么问题,就是取的我们想要的数据.比如:
for(var i in json){
console.log("学号:"+json[i].id);
console.log("姓名:"+json[i].name)
}
但是如果遇到第二种格式的数据.for in 取出来的就是
for(i in cc){
console.log(cc[i].id)
}
//会输出undefined
让我们来看看 i 现在是什么
for(i in cc){
console.log(i)
}
//id
//name
解决方案
这样,我们就很好做了,只需要判断 i 是否为正整数.
Number(i)将i转换为数字, 如果是其它字符,将转换出来是NaN..
for(var i in json) {
//这里判断是否是单个json
if(!isNaN(Number(i))) {
console.log(json[i].id)
} else {
console.log(json.id)
}
}