在KeyPair基础上的Jquery中循环json数据

Posted

技术标签:

【中文标题】在KeyPair基础上的Jquery中循环json数据【英文标题】:looping json data in Jquery on KeyPair base 【发布时间】:2015-10-07 02:18:57 【问题描述】:

大家好,下面是我从服务器得到的响应。我试图根据键循环它不幸的是我没有成功。

"metricsLevelList": [
"levelName": "Account1Name",
"levelId": 1,
"metrics":    [
        
     "value": "80",
     "greenZoneStart": "90",
     "greenZoneEnd": "100",
     "yellowZoneStart": "60",
     "yellowZoneEnd": "90",
     "redZoneStart": "0",
     "redZoneEnd": "60",
     "metricsType": "Dial",
     "metricsName": "FTR Deliverables"
  ,
        
     "value": "0",
     "greenZoneStart": "90",
     "greenZoneEnd": "100",
     "yellowZoneStart": "60",
     "yellowZoneEnd": "90",
     "redZoneStart": "0",
     "redZoneEnd": "60",
     "metricsType": "Dial",
     "metricsName": "OTD Deliverables"
  ,
        
     "value": "0",
     "greenZoneStart": "0",
     "greenZoneEnd": "5",
     "yellowZoneStart": "5",
     "yellowZoneEnd": "15",
     "redZoneStart": "15",
     "redZoneEnd": "100",
     "metricsType": "Dial",
     "metricsName": "% Defect Rejection"
  ,
        
     "value": null,
     "greenZoneStart": null,
     "greenZoneEnd": null,
     "yellowZoneStart": null,
     "yellowZoneEnd": null,
     "redZoneStart": null,
     "redZoneEnd": null,
     "metricsType": null,
     "metricsName": null
  ,
        
     "value": "0",
     "greenZoneStart": "90",
     "greenZoneEnd": "100",
     "yellowZoneStart": "70",
     "yellowZoneEnd": "90",
     "redZoneStart": "0",
     "redZoneEnd": "70",
     "metricsType": "Dial",
     "metricsName": "CSAT (% VoC)"
  
]
]

在这里,我必须循环metricsLevelList(我将有不同的级别名称)在另一个循环中的metrics(具有metrics内容)。有人请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

您可以使用以下循环来迭代嵌套对象(假设您的 json 存储在名为 jsonDemo 的变量中):

function loop(obj) 
    $.each(obj, function(key, val) 
        if(val && typeof val === "object")  // object, call recursively
            console.log(" "); 
            loop(val);
         else 
            console.log(key + "-->" + obj[key]); 
        
    );


loop(jsonDemo);

见小提琴:“http://jsfiddle.net/pgo637dj/”

说明:这将遍历对象的所有键并检查每个键是否进一步是对象,如果是则递归调用它,否则将显示。

【讨论】:

感谢帮助的小伙伴【参考方案2】:

经过多次跟踪和错误后我得到了答案

var responseEle =$response;
var importantObject = responseEle.metricsLevelList[0];
for (var item in importantObject) 
var theDate = item; //the KEY
var theNumber = importantObject[item]; //the VALUE
if(item =='metrics')

$.each(theNumber, function(i, newItem)

);


【讨论】:

以上是关于在KeyPair基础上的Jquery中循环json数据的主要内容,如果未能解决你的问题,请参考以下文章

使用循环在 HTML 中显示来自 jQuery.ajax 的 json 数据

jquery循环输出json数据

带有 JSON 数组的 jQuery 'each' 循环

Jquery怎么样对这种json格式的数据进行增删改查

jquery怎么循环获取JSON中的数据?

jQuery 循环从 AJAX 成功的 JSON 结果?