Облачные функции: Как получить значение определенного атрибута json? - PullRequest
0 голосов
/ 10 июня 2019

Мой файл json, который я ввожу в окно сообщения публикуемого сообщения pubsub, выглядит следующим образом:

{
"message": "Good morning",
"sender": "Joe Schmoe"
}

Я попытался получить доступ к значению «sender» в следующем, безуспешные способы:

console.log(decodedJson); //gives decoded json file

console.log("pubsubMessage.sender",pubsubMessage.sender); //returns undefined

console.log("decodedJson.sender",decodedJson.sender); //returns undefined

console.log("decodedJson['sender']",decodedJson["sender"]); //returns undefined

console.log("Decoded Json referencing using object.keys: The", 
Object.keys(decodedJson)[1], " is ", decodedJson[Object.keys(decodedJson)[1]]); //returns "The 1 is "

console.log("pubsubMessage referencing using object.keys: The", Object.keys(pubsubMessage)[1], " is ", pubsubMessage[Object.keys(pubsubMessage)[1]]); //returns "The 1 is w"

console.log("event.after.data().sender ",event.after.data().sender); //returns an error message

Для справки, две переменные pubsubMessage и decodedJson определены следующим образом:

const pubsubMessage = event.data;
const decodedJson=Buffer.from(pubsubMessage, 'base64').toString();

Любая помощь, которую вы можете предоставить, показывая мой способ доступа к определенному атрибутуценности высоко ценятся!Заранее спасибо!

1 Ответ

2 голосов
/ 10 июня 2019

Следующий код должен работать:

exports.pubSubFn = (event, context) => {
  const pubsubMessage = event.data;
  parsed = JSON.parse(Buffer.from(pubsubMessage, 'base64').toString());
  console.log("Sender:" + parsed.sender);
};
...