Google 脚本 - 遍历 JSON 个对象键值对

Google Script - iterate over JSON object key value pairs

我对 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"
}

日志显示我的循环只将值的第一个字母作为整个值,将值的第二个字母作为键。如何获取整个键值对!?

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]);
  }
}

在您的 for (var [key,val] in jsonObj) {} 脚本中,密钥与每个字符分开。并且,检索前 2 个字符。由此,检索到这样的结果。我认为这就是您遇到问题的原因。

如果你想在for循环中使用[key,val]获取值,我想提出以下修改。

发件人:

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);
}

参考文献: