Google Script - итерация по JSON пар ключ-значение объекта - PullRequest
0 голосов
/ 09 июля 2020

Моя итерация по объекту JSON работает не так, как ожидалось. Что не так?

function handleResponse(e) {
  var jsonObj = JSON.parse(e.postData.contents);
  console.log("Note=" + jsonObj['Note'] + ", Market=" + jsonObj['Market']);
  // --> "Note=blabla, Market=flowerMarket"

  for (var [key,val] in jsonObj) {
    console.log("Key="+key); 
    console.log("Value="+val);
  }
  // --> "Key=N" "Value=o" "Key=M" "Value=a"
}

Журнал показывает, что мой l oop принимает только первую букву значения как целое значение и вторую букву значения как ключ. Как мне получить все пары ключ-значение!?

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

В вашем скрипте for (var [key,val] in jsonObj) {} ключ разделен на каждый символ. И извлекаются 2 верхних символа. Таким образом получается такой результат. Я думаю, что это причина вашей проблемы.

Если вы хотите получить значения, используя [key,val] в l oop, я хотел бы предложить следующую модификацию.

От:

for (var [key,val] in jsonObj) {
  console.log("Key="+key); 
  console.log("Value="+val);
}

Кому:

for (var [key,val] of Object.entries(jsonObj)) {
  console.log("Key="+key); 
  console.log("Value="+val);
}

Ссылки:

1 голос
/ 09 июля 2020
function handleResponse(e) {
  const jsonObj = JSON.parse(e.postData.contents);
  console.log('Note= %s,Market= %s',jsonObj.Note,jsonObj.Market);
  for(let key in jsonObj) {
    console.log("Key="+key); 
    console.log("Value="+jsonObj[key]);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...