2016-12-14 65 views
-2

我想從我的服務器使用Javascript獲取Json。下面是服務器響應:Javascript無法獲得JSON密鑰

{ 
    "AAT": [ 
    { 
     "Header": [ 
     { 
      "TimeStamp": "14.12.2016 10:28:27", 
      "MessageID": "0201A", 
      "ErrorCode": "0" 
     } 
     ], 
     "Body": [ 
     { 
      "ClientToken": "eyJ2ZXJzaW9uIjoyLCJh" 
     } 
     ] 
    } 
    ] 
} 

,我試圖讓ClientToken這樣的:

var json = JSON.parse(data); 

// Get the ClientToken from the Json 
var token = json['ClientToken']; 

這一次得手,但我沒有得到它的工作。 希望有人可以看到我的錯誤

感謝

+1

'json.AAT [0] .Body.ClientToken' – R3tep

回答

1

見你的JSON的結構:ClientToken裏面Body這是一個數組裏面AAT是,本身是一個數組。爲了訪問ClientToken,你首先要經過其父母:

var data = '{ \t \t \t \n' + 
 
' "AAT": [ \t \t \n' + 
 
' { \t \t \n' + 
 
'  "Header": [ \t \t \n' + 
 
'  { \t \t \n' + 
 
'   "TimeStamp": "14.12.2016 10:28:27", \t \t \n' + 
 
'   "MessageID": "0201A", \t \t \n' + 
 
'   "ErrorCode": "0" \t \t \n' + 
 
'  } \t \t \n' + 
 
'  ], \t \t \n' + 
 
'  "Body": [ \t \t \n' + 
 
'  { \t \t \n' + 
 
'   "ClientToken": "eyJ2ZXJzaW9uIjoyLCJh" \t \t \n' + 
 
'  } \t \t \n' + 
 
'  ] \t \t \n' + 
 
' } \t \t \n' + 
 
' ] \t \t \n' + 
 
'} \t \t \n'; 
 

 
var json = JSON.parse(data); 
 
var token = json.AAT[0].Body[0].ClientToken; 
 
alert(token);

+0

那麼它仍然是 「未定義」:/ –

+1

VAR標記= json.AAT [0]。體[0] .ClientToken Body元素也一個數組,所以你需要使用索引來訪問它 – Proxy

1

ClientToken裏面AAT->Body這樣你就可以通過AAT->Body

var token = json.AAT[0].Body[0].ClientToken; 

我已經使用訪問0索引如果內部有多個對象AATBody您需要循環訪問objects訪問ClientToken

+0

這個作品,謝謝!但仍然有一個問題:爲什麼這個工作,但突然停止? –

+0

你的意思是什麼停止了? – Mairaj

+0

也許返回的JSON曾經有所不同? –