2016-07-08 63 views
-1

所以我需要得到下面的值:我有一個JSON對象,我需要從中取出一些值。我如何在JQuery中做到這一點?

  • 位置
  • 狀態
  • abc_status
  • S_S
  • S_E
  • n_c
 

    { 
     "skills": [], 
     "languages": [], 
     "cal_strs": [{ 
      "test": null, 
      "primary_test": null 
     }], 
     "id": 123, 
     "my_id": 1346, 
     "username": "blahblah", 
     "full_name": "mr blah", 
     "email": "[email protected]", 
     "location": "boston", 
     "manager": "boss", 
     "status": 1, 
     "abc_status": "here", 
     "s_s": "2010-06-08T23:00:00Z", 
     "s_e": "2010-06-13T07:00:00Z", 
     "n_c": "2010-07-08T07:00:00Z", 
     "last_here": null, 
    } 

件事情我已經嘗試:

數據[0] - 給我的左括號「{」 數據[「位置」] - 返回undefined

+1

? –

+0

我試圖做訪問對象數據[0]然而,這給了我的左括號'{' – edward

+0

我也嘗試通過執行以下操作來訪問對象屬性:data ['location'] this undefined – edward

回答

3

你在這裏的是一個對象字面,女巫可以被操縱無需使用jQuery的,讀這個對象可以使用點符號基礎上,重點 obj.key = value

var obj = 
    { 
     "skills": [], 
     "languages": [], 
     "cal_strs": [{ 
      "test": null, 
      "primary_test": null 
     }], 
     "id": 123, 
     "my_id": 1346, 
     "username": "blahblah", 
     "full_name": "mr blah", 
     "email": "[email protected]", 
     "location": "boston", 
     "manager": "boss", 
     "status": 1, 
     "abc_status": "here", 
     "s_s": "2010-06-08T23:00:00Z", 
     "s_e": "2010-06-13T07:00:00Z", 
     "n_c": "2010-07-08T07:00:00Z", 
     "last_here": null 
    } 
console.log(obj.location); 
console.log(obj.status); 

var abc_status = obj.abc_status;//save the value to a variable 
+0

答案中的代碼顯示的是使用對象字面值創建的對象。這是*不* JSON,這是用於數據交換的字符串格式。 – nnnnnn

+0

我能夠從對象中獲取值,即刪除JSON.stringify(data)。感謝堆 – edward

+0

如果我需要從「cal_strs」:[{}]數組獲得第二個值,那麼我該怎麼做? – edward

1

你試圖訪問您的JSON對象,就好像它是一個數組來獲取對象的值。不是。你已經可以訪問你的對象了,因爲它已經是一個合適的javascript對象了(它不是json)。簡單地說就是對象存儲到一個變量(如var obj = {...}東西,然後鍵入obj.skills獲得的技能陣列回來。如果你想從cal_strs陣列得到test,你可以做obj.cal_strs[0].test

0

使用下劃線(_。摘去)獲得從對象 或者試圖定義一個新的變量,並重新分配它你嘗試什麼樣的具體數值。

var s = { 
     "skills": [], 
     "languages": [], 
     "cal_strs": [{ 
      "test": null, 
      "primary_test": null 
     }], 
     "id": 123, 
     "my_id": 1346, 
     "username": "blahblah", 
     "full_name": "mr blah", 
     "email": "[email protected]", 
     "location": "boston", 
     "manager": "boss", 
     "status": 1, 
     "abc_status": "here", 
     "s_s": "2010-06-08T23:00:00Z", 
     "s_e": "2010-06-13T07:00:00Z", 
     "n_c": "2010-07-08T07:00:00Z", 
     "last_here": null, 
    } 
var t = {}; 
t['location'] = s.location; 
t['status'] = s.status; 
t['abc_status'] = s.abc_status; 
t['s_s'] = s.s_s; 
t['s_e'] = s.s_e; 
t['n_c'] = s.n_c; 

的情況下,多個陣列使用下劃線。

+0

您不需要使用下劃線從javascript對象獲取值。這是本地的。沒有庫需要 – mwilson

+0

用於循環條件來獲取數組值,並獲得每個值。 @mwilson – Sathish

+0

這裏不需要for循環,除非OP想循環js對象中的一個數組。我也會謹慎使用一個JavaScript對象的for循環,因爲它可能是嵌套的,因此需要遞歸或其他邏輯。然而,你當然可以使用'for in'循環遍歷這些對象。 – mwilson

相關問題