Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中迭代嵌套json_Javascript_Json - Fatal编程技术网

如何在javascript中迭代嵌套json

如何在javascript中迭代嵌套json,javascript,json,Javascript,Json,我在服务器端创建了非常复杂的json 像- 上面的JSON对象保存三个月内的值“A”、“B”和“C”,即当前+过去两个月 var data = {{=monthly_result}}; //Python variable assigned to js var 现在我想在javascript中循环上面的对象。 请引导我。 找到许多链接,但没有任何链接是完全有帮助的。 提前谢谢 您可以使用for循环,下面是一个非常简单的示例: var data = {"2013": {"11": {"A": 0,

我在服务器端创建了非常复杂的json 像-

上面的JSON对象保存三个月内的值“A”、“B”和“C”,即当前+过去两个月

var data = {{=monthly_result}}; //Python variable assigned to js var
现在我想在javascript中循环上面的对象。 请引导我。 找到许多链接,但没有任何链接是完全有帮助的。
提前谢谢

您可以使用for循环,下面是一个非常简单的示例:

var data = {"2013": {"11": {"A": 0, "B": 310, "C": 6}, "12": 
           {"A": 0, "B": 281, "C": 5}}, "2014": {"1": 
           {"A": 0, "B": 310, "C": 6}}};

for(var year in data) {
    var ydata = data[year];
    for(var num in ydata) {
        var ndata = ydata[num];
        for(var l in ndata) {
            console.log(year + ' -> ' + num + ' -> ' + l + ' = ' + ndata[l]);
        }
    }
}
要以通用方式迭代“复杂”对象,我将如下所示:

(psedo code to show how it could be done)

var result = [];
function objIterate(obj, i) {
   result.push([]);
   for (prop in obj){
      if (isObj(prop))
         objIterate(prop, i+1);
      else
         result[i].push(obj[prop]);
   }
}

var obj = yourJson;
objIterate(obj, 0);
做点像
谷歌Javascript循环可能重复的迭代和做什么?将其转换为新值,用附加属性注释对象?
{{=monthly\u result}???非常感谢。它可以工作……但是当我将json分配给obj时,比如-var obj={{{=monthly_result}}……它给出了一些错误。请提供相关帮助。@user3020422您能为此打开一个新问题或编辑上面的内容吗..如果这是有效的,请将其标记为正确的。同时检查FIDLE我也为变量objThank分配了json非常感谢。它可以工作……但是当我将json分配给obj时,比如-var obj={{{=monthly_result}}……它给出了一些错误。请提供相关帮助。@user3020422,而不是在这里或那里发表评论,用要求更新您的问题
(psedo code to show how it could be done)

var result = [];
function objIterate(obj, i) {
   result.push([]);
   for (prop in obj){
      if (isObj(prop))
         objIterate(prop, i+1);
      else
         result[i].push(obj[prop]);
   }
}

var obj = yourJson;
objIterate(obj, 0);
var obj = {"2013": {
            "11": {"A": 0, "B": 310, "C": 6},
            "12": {"A": 0, "B": 281, "C": 5}
            }, 
          "2014": 
            {"1": {"A": 0, "B": 310, "C": 6}
           }
        };

for(outer in obj) {
    for (inner in obj[outer]) {
        for(innermost in obj[item][inner]) {
            alert(outer + "-->" + inner + "-->" + innermost + "-->" + obj[item][inner][innermost]);
        }
    }
}