for i in json 循环判断是否是在遍历json结构体

需求

在代码中, 会遇到这样的问题:
有时,后台传来的是
[{"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)
    }
}

推荐阅读更多精彩内容