js 遍历 JSON数据

一、遍历JSON步骤

  1. 将获取的数据转为 JSON 对象【JSON.parse(data);
  2. 通过for in循环遍历拿到 key 和 value【for (var key in obj)】遍历JSON对象中的数据,可通过for-in循环实现
  3. 判断 value 是否是对象【if (typeof value == "object")

 

js解析\遍历json数据中所有的键和值

for(var key in json){

console.log(key)    //键

consolelog(json[key])  //值

}

注:数组同样适合

例如:

        function aa() {
            var jsona = {
                "1": {"id": "1", "name": "宾馆服务项目", "count": 1, "rows": [{"9": "免费停车场"}]},
                "6": {"id": "6", "name": "宾馆附加设施", "count": 1, "rows": [{"242": "免费wifi"}]}
            }
            console.log(jsona)
            for (var name in jsona) {
                var project = jsona[name].rows;
                for (var proj in project) {
                    for (var pKey in project[proj]) {
                        console.log(project[proj][pKey]);
                    }
                }
            }
        }

 

1、HTML代码




    
    无标题文档

    

    



输入数据

数据展示

2、测试数据

{
    "uid": 1,
    "uname": "张三",
    "udescriptor": "===",
    "number": [1, 2, 3, 44],
    "map": {
        "aa": {
            "tid": 11,
            "tname": "张三1",
            "tdescriptor": "==="
        },
        "bb": {
            "tid": 22,
            "tname": "张三2",
            "tdescriptor": "==="
        }
    },
    "tlist": [{
        "tid": 11,
        "tname": "张三1",
        "tdescriptor": "==="
    }, {
        "tid": 22,
        "tname": "张三2",
        "tdescriptor": "==="
    }]
}

 3、测试结果

js 遍历 JSON数据_第1张图片

 

二、js中从json格式数据中获取特定对象

写个方法获取:

function getJsonValue(obj,name){
        var result = null;
        var value  = null;
        for(var key in obj){        
            value = obj[key];
            if(key == name){
            return value;
        } else {
            if( typeof value == "object" ){
            result = getJsonValue(value,name);
            }
        }
    }
    return result;
}
var jsonobj = { "semantic":{"taskId":"8.4.3"},"history":"cn.xxxx.fund"};
var taskId = getJsonValue(jsonobj,"history");
console.log(taskId);

 

你可能感兴趣的:(前端)