迭代JSON并分别取出每个值

时间:2018-08-17 10:15:06

标签: jquery json

我在console.log中获得了预期的结果,现在我想以跨度显示结果 如下 已安排
司机:
乘客:

活跃
司机:
乘客:

我的工作代码是

$(document).ready(function() {
    $.ajax({
        asyn: true,
        crossDomain: true,
        url: "apilink",
        dataType: 'JSON',
        callback: 'callback',
        type: 'GET',
        success: function(result) {
            //console.log(result)
            var obj = jQuery.parseJSON(JSON.stringify(result))
            for (var propertyName in obj) {
                console.log(propertyName + ":");
                for (var internalPropertyName in obj[propertyName]) {
                    console.log(internalPropertyName + ":" + obj[propertyName][internalPropertyName]);
                }
            }

        }
    });

2 个答案:

答案 0 :(得分:0)

您可以创建一个函数并在ajax响应中调用此函数。 这将为您添加新的密钥,分别为“ scheduled_count”和“ active_count”

您可以使用

$(document).ready(function() {
    $.ajax({
        asyn: true,
        crossDomain: true,
        url: "http://10.26.32.11/api/rating-service/rate/current/gettrips",
        dataType: 'JSON',
        callback: 'callback',
        type: 'GET',
        success: function(result) {
            //console.log(result)
            var obj = jQuery.parseJSON(JSON.stringify(result))
             makeFlatModel(obj);
        }
    });

// For testing no need to add in code
jsobj  = {
"scheduled": {
    "driver_count": 1,
    "passenger_count": 1
},
"active": {
    "driver_count": 0,
    "passenger_count": 0
}}
makeFlatModel(jsobj );
console.log(jsobj );
// For testing code ends

// add this function in your code


function makeFlatModel(jsonObject){
	var sum=0;
	for(var propertyName in jsonObject){
		if(typeof jsonObject[propertyName] =='object'){
			jsonObject[propertyName+"_count"] = makeFlatModel(jsonObject[propertyName]);
		}else{
			sum+= jsonObject[propertyName];
		}
	} 
  return sum;

}

输出 enter image description here

答案 1 :(得分:0)

如果要自动执行任务,可以像下面的示例一样遍历各个键

    var obj = {
        "scheduled": {
            "driver_count": 1,
            "passenger_count": 5
        },
        "active": {
            "driver_count": 1,
            "passenger_count": 2
        }
    }
    
    var keys = Object.keys(obj);
    
    keys.forEach(function(key){
    	var innerKeys = Object.keys(obj[key]);

        var s = key;
        s = s[0].toUpperCase() + s.slice(1);
    	var head = s + ": ";
      
      innerKeys.forEach(function(key, idx){
      	head+= (idx > 0 ? "+" : "") + key.split("_")[0];
      });
      
      innerKeys.forEach(function(innerKey){
        var s = innerKey.split("_")[0];
        s = s[0].toUpperCase() + s.slice(1);
      	head+="\n" + s + ": " + obj[key][innerKey]; 
      })
      
      
      console.log(head)
    })

这将为您生成密钥并获取值,并生成您要求的确切输出。