Javascript无法获取Json密钥

时间:2016-12-14 09:33:08

标签: 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'];

这曾经工作过一次,但我不能让它重新开始工作。 希望有人能看到我的错误

由于

2 个答案:

答案 0 :(得分:1)

查看JSON的结构:ClientToken位于Body内,这是一个位于AAT内的数组,它本身就是一个数组。要访问ClientToken,您首先必须通过其父母:

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

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

答案 1 :(得分:1)

ClientToken位于AAT->Body内,因此您可以通过AAT->Body

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

如果0AAT中有多个对象,我需要使用Body索引,您需要循环访问objects才能访问ClientToken