Как получить значение ключа из jsondata - PullRequest
0 голосов
/ 15 октября 2018
{
"Records": [{
    "messageId": "20ea364e-3bc107b5c78c",
    "receiptHandle": "AQEB6DhNloFS4R66c=",
    "body": "1",
    "attributes": {
        "ApproximateReceiveCount": "1",
        "SentTimestamp": "15393506",
        "SenderId": "AROAJMTI6NE:errorLog",
        "ApproximateFirstReceiveTimestamp": "15393511"
    },
    "messageAttributes": {},
    "md5OfBody": "c4ca75849b",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:ap-suth-1:83362:escalateErrorStandardQueue",
    "awsRegion": "ap-south-1"
}]

}

Я хочу получить значение ключа "body", и ожидаемый результат должен быть: 1

Ответы [ 4 ]

0 голосов
/ 15 октября 2018

Если ваши записи являются массивом, вы можете попытаться выполнить итерацию вашего Records и получить значение body.

Кроме того, если вы выполняете логические условия, рекомендуется проанализировать значениев целое число, потому что данные из JSON будут возвращать строку (естественно);в моем примере я анализирую его с помощью оператора + Unary Plus .

var data = {
  "Records": [{
      "messageId": "20ea364e-3bc107b5c78c",
      "receiptHandle": "AQEB6DhNloFS4R66c=",
      "body": "1",
      "attributes": {
          "ApproximateReceiveCount": "1",
          "SentTimestamp": "15393506",
          "SenderId": "AROAJMTI6NE:errorLog",
          "ApproximateFirstReceiveTimestamp": "15393511"
      },
      "messageAttributes": {},
      "md5OfBody": "c4ca75849b",
      "eventSource": "aws:sqs",
      "eventSourceARN": "arn:aws:sqs:ap-suth-1:83362:escalateErrorStandardQueue",
      "awsRegion": "ap-south-1"
  }]
};

for (record in data.Records)
{
  console.log('Normal JSON value:', typeof data.Records[record].body);
  console.log('Parsed JSON value:', typeof +data.Records[record].body);
  console.log('The Record body is:', +data.Records[record].body);
}
0 голосов
/ 15 октября 2018

var data={
"Records": [{
    "messageId": "20ea364e-3bc107b5c78c",
    "receiptHandle": "AQEB6DhNloFS4R66c=",
    "body": "1",
    "attributes": {
        "ApproximateReceiveCount": "1",
        "SentTimestamp": "15393506",
        "SenderId": "AROAJMTI6NE:errorLog",
        "ApproximateFirstReceiveTimestamp": "15393511"
    },
    "messageAttributes": {},
    "md5OfBody": "c4ca75849b",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:ap-suth-1:83362:escalateErrorStandardQueue",
    "awsRegion": "ap-south-1"
}]
};
console.log(data.Records[0].body);

Вы можете получить доступ к данным, просто data.Records[0].body.

0 голосов
/ 15 октября 2018

попробуйте это:

(data && data['Records'] && data['Records'][0] && data['Records'][0]['body']) || 1;

он никогда не выдаст вам никакой ошибки и не вернет значение 'body' ключа, если существует иначе 1.

0 голосов
/ 15 октября 2018

Если имя jsondata data (скажем):

data.Records[0].body
...