jQuery和迭代JSON对象

tft*_*ftd 5 each jquery json while-loop

我目前正试图弄清楚如何迭代JSON响应中的所有对象.我的对象可能有无限的子对象,也可能有无限的子对象.

{
  "obj1" : {
      "obj1.1" : "test",
      "obj1.2" : {
         "obj1.1.1" : true,
         "obj1.1.2" : "test2",
         "obj1.1.3" : {
             ... // etc
         }
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有一个开箱即用的脚本可以处理这种类型的对象?

Ken*_*ler 4

这是一个小函数,可以跟踪您在树中行走的深度,并沿途停下来允许您执行操作(您没有指定您实际想要执行的操作或时间):

function dig( blob, depth ) { 
  var depth = depth || 0; // start at level zero
  for( var item in blob ) {
    console.log( 'depth: ' + depth + ': ' + item); // do something real here
    if( typeof blob[item] === 'object' ) {
      dig( blob[item], ++depth ); // descend
    } else { // simple value, leaf
      console.log( ' => ' + blob[item] ); // do something real here
    }
  }
}      

console.log( dig( obj ) );
Run Code Online (Sandbox Code Playgroud)

假设obj您的 JSON 如上所述,这应该给您类似的内容(未测试):

depth: 0: obj1
depth: 1: obj1.1
 => test
depth: 1: obj1.2
// etc.
Run Code Online (Sandbox Code Playgroud)