2016-08-15 154 views
0

我在尋找從以下JSON數據中檢索people_id,username,namepeople_type。最終,我必須在引導模式表中填充這些細節。下面 是我一直在使用檢索細節jQuery代碼:訪問嵌套json時出現undefined

.done(function (data_, textStatus_, jqXHR_) { 
$.each(data_.people_list, function(key, value) { 

        $.each(value.details_list, function(k,v) { 
           console.log("Inside Loop:"+v.name); 
           $.each(v.role, function(k1,v1) { 
           console.log("Inside Another Loop for Role Name:"+v1.people_type); 
           }); 
        }); 
       }); 

}) 

目前我正在試圖訪問僅namepeople_type。這裏是我我的控制檯上獲得的輸出:

Inside Loop:First Hand Details 
Inside Another Loop for Role Name:undefined 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:undefined 
Inside Loop:UAB Multiple Myeloma Registry 
Inside Another Loop for Role Name:undefined 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:undefined 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:undefined 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:undefined 

爲什麼people_type未定義?我在網上閱讀時得知undefined這個特定的東西不存在?

{ 
    "webservice_status" : { 
    "status" : "SUCCESS", 
    "message" : "" 
    }, 
    "people_list" : [ { 
    "people_id" : 001, 
    "username" : "pxy123", 
    "full_name" : "James Camerion", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 002, 
    "username" : "gbt123", 
    "full_name" : "Tom Cruise", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3041, 
     "people_type" : "Normal User" 
     } 
    }, { 
     "id" : 5678, 
     "name" : "Second Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 003, 
    "username" : "txt456", 
    "full_name" : "Michael Jordon", 
    "details_list" : [ { 
     "id" : 1234,                          
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 004, 
    "username" : "mxn788", 
    "full_name" : "Paul Walker", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 005, 
    "username" : "nhgy234", 
    "full_name" : "Brad Pitt", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    } ] 
} 
+0

角色是一個不是數組的對象,不需要循環訪問 – aw04

+1

在同一個「level」訪問'v.name',你可以訪問'v.role.people_type'。 –

回答

1

要獲得預期之下選項
無需閉環V結果的使用,因爲它是可用的。每個(),它是一個單一的對象,而不是有多個對象

$.each(test[0].people_list, function(key, value) { 

        $.each(value.details_list, function(k,v) { 

           console.log("Inside Loop:"+v.name); 

           console.log("Inside Another Loop for Role Name:"+v.role.people_type); 

        }); 
       }); 




var test =[{ 
    "webservice_status" : { 
    "status" : "SUCCESS", 
    "message" : "" 
    }, 
    "people_list" : [ { 
    "people_id" : 001, 
    "username" : "pxy123", 
    "full_name" : "James Camerion", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 002, 
    "username" : "gbt123", 
    "full_name" : "Tom Cruise", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3041, 
     "people_type" : "Normal User" 
     } 
    }, { 
     "id" : 5678, 
     "name" : "Second Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 003, 
    "username" : "txt456", 
    "full_name" : "Michael Jordon", 
    "details_list" : [ { 
     "id" : 1234,                          
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 004, 
    "username" : "mxn788", 
    "full_name" : "Paul Walker", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    }, { 
    "people_id" : 005, 
    "username" : "nhgy234", 
    "full_name" : "Brad Pitt", 
    "details_list" : [ { 
     "id" : 1234, 
     "name" : "First Hand Details", 
     "role" : { 
     "type_id" : 3042, 
     "people_type" : "SuperUser" 
     } 
    } ] 
    } ] 
}]; 


$.each(test[0].people_list, function(key, value) { 

        $.each(value.details_list, function(k,v) { 

           console.log("Inside Loop:"+v.name); 

           console.log("Inside Another Loop for Role Name:"+v.role.people_type); 

        }); 
       }); 

Codepen : http://codepen.io/nagasai/pen/BzrEVN

輸出:

Inside Loop:First Hand Details 
Inside Another Loop for Role Name:SuperUser 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:Normal User 
Inside Loop:Second Hand Details 
Inside Another Loop for Role Name:SuperUser 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:SuperUser 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:SuperUser 
Inside Loop:First Hand Details 
Inside Another Loop for Role Name:SuperUser