循环复杂的JSON对象

Ban*_*lla 3 javascript jquery json loops

我有一个非常复杂的json对象,我需要按原样编写所有属性和键.我有它的概念只是无法得到执行.

如果对象具有对象等,则需要继续调用该函数.我虽然遇到了障碍,但有些钥匙没有被输出,有些价值被打破了

0:h 1:t 2:t 3:p 4: 5:/ 6:/ etc....
name:Travel
scheme:
label:
Run Code Online (Sandbox Code Playgroud)

我假设我的代码中某处需要更改一点错误.

ObjectValues = function(obj){
for(var j in obj){
   if(typeof(obj[j]) == "object"){
       for(var k in obj[j]){
         ObjectValues(obj[j][k]);
       }
   } else {
       console.log(j + ":" + obj[j]);
   }
}
Run Code Online (Sandbox Code Playgroud)

_

{
"title": "Norway Tourism: Wildlife and Nature",
"author": "",
"categories": [
    {
        "name": "Travel",
        "scheme": "",
        "label": ""
    }
],
"countries": [

],
"content": [
    {
    "thumbnails": [
    {
        "audioChannels": 0,
        "audioSampleRate": 0,
        "bitrate": 0,
        "checksums": {
            "md5": "7089E4E044069AE7702DEC686"
        }
      }
    ]
   }
  ]
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*uel 7

ObjectValues = function(v, k){
  if (typeof v == "object") {
    for (var kp in v) {
      if (Object.hasOwnProperty.call(v, kp)) {
        ObjectValues(v[kp], k != undefined ? k + "." + kp : kp);
      }
    }
  } else {
    console.log(k + ":" + v);
  }
};
Run Code Online (Sandbox Code Playgroud)

即使对于非对象的JSON值也应该工作.它会起作用

ObjectValues(JSON.parse("0"));
Run Code Online (Sandbox Code Playgroud)

它不会由原始文件处理,如果你这样做,它不会迭代顶级字符串中的字符ObjectValues("http://...").