2012-05-24 103 views
0

我知道下一個問題必須看起來愚蠢的,但無論如何,我會做到這一點:)簡單的JSON陣列結構

我有這樣的結構:

{ 
     "name": "Erjet Malaj", 
     "first_name": "Erjet", 
     "work": [ 
     { 
      "employer": { 
      "id": "110108059015688", 
      "name": "Art of Living Foundation" 
      }, 
      "position": { 
      "id": "137081429661437", 
      "name": "Volunteer" 
      }, 
      "start_date": "0000-00", 
      "end_date": "0000-00" 
     }, 
     { 

我找回response.data [I] .first_name像這樣,我該如何檢索工作ID?

+0

問題是什麼? –

+2

「工作」沒有ID。你的意思是僱主ID或職位ID? – apsillers

+0

結構中的工作id在哪裏? –

回答

2

work是一個數組。您可以通過它

var work = response.data[i].work, 
    worklen = work.length, 
    j, workdetails; 

for(j = 0; j < worklen; j++){ 

    //simplify for readability 
    workdetails = work[j]; 

    //where prop is "employer" or "position" 
    workdetails[prop].id 
    workdetails[prop].name 
} 
+0

嘿,因爲我在這裏,我可以請你問一個問題,所以我需要循環所有我的ID然後爲每個ID提取工作ID,我在這裏做錯了什麼? for(var i = 0; i

+0

@AlAlb:請編輯您的問題並在那裏發佈代碼。沒有什麼比評論中的多行代碼更糟糕... – Bergi

0

你試過response.data[i].work.position.id

第二個想法,工作對象的數組,所以它就像訪問:

response.data[i].work[0].position.id

+1

'工作'看起來像一個數組。 – WojtekT

+0

是的,我意識到這一點,並糾正了我的答案。 –

0

需要循環假設你的意思是給定的工作

的僱主ID這應該讓僱主ID

response.data[i].work[j].employer.id 

你也可以這樣做(根據喜好)

response.data[i].work[j]['employer'].id 

在這種情況下,工作位置是j(用作數組索引器),將j替換爲0獲得第一個,用1獲得第二個等。

0

有一個id僱主和work陣列中的每個記錄的位置。如果你想遍歷一個人的工作條目,並收集那些ID,請使用:

var person = response.data[i]; 
var work = person.work; 

for(var j = 0; j < work.length; ++j) { 
    var work_entry = work[j]; 
    console.log(work_entry.employer.id); 
    console.log(work_entry.position.id); 
} 

work數組中的條目從0數字訪問本身也是對象的條目,您可以訪問使用obj_name.property_name它們的屬性或obj_name["property_name"]

+0

謝謝,這是我需要的一切,花了我時間瞭解它是如何工作:) –

+0

是的確定:) 再次感謝! –