2016-12-14 41 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曾经有所不同? –