2012-05-18 278 views
1
{ 
    'AddUpdateResult': { 
     "Patient": "24919" 
    } 
} 

這是我的迴應的一部分,我面臨的問題是我得到的JSON響應是動態的,我需要解析它。在另一種情況下,我得到了這樣的東西。解析動態JSON響應

{ 
     'EditUpdateResult': { 
      "Patient": "24919" 
     } 
    } 

當我嘗試這樣的事情,我得到「Cannot read property Patient from null」而原因就是它的期待「EditUpdateResult」。

json.AddUpdateResult.Patient 

我怎樣才能動態地訪問密鑰。像... json.whatever.Patient,以便它可能AddUpdateResultEditUpdateResult

+1

您是否只處理兩種可能的反應,或者您是否需要一個更一般的解決方案來處理具有「患者」屬性的任何響應? –

+1

這不是JSON。字符串不能用'''字符引用。 – Quentin

+1

JSON屬性用雙引號引起來,而不是單引號。代碼中的JSON在哪裏?它是一個字符串嗎?你把它解析成一個JS對象嗎?沒有代碼的問題很難回答。 –

回答

1

所有的答案只有一個「結果」?如果是這樣,請嘗試循環播放,如下所示:

var patient; 

for (var i in json) { 
    patient = json[i].Patient; 
} 
2

可能在不知道屬性名稱的情況下遍歷JSON對象。

for (var key in p) { 
    if (p.hasOwnProperty(key)) { 
     alert(key + " -> " + p[key]); 
    } 
} 
+0

如果您的對象可能已經原型化,那麼使用'hasOwnProperty'非常有用。這個例子中的情況可能並非如此(基於所提供的數據),但仍然是好點。 – pseudosavant