gpt4 book ai didi

javascript - 类型错误 : Cannot Read Property "x" from undefined. 仅当我包含值数组时

转载 作者:行者123 更新时间:2023-11-29 22:51:02 25 4
gpt4 key购买 nike

我正在尝试遍历来自谷歌工作表列的值,该列首先运行一个函数来解析 json 页面上的响应以获取唯一标识符,然后另一个 json 响应使用唯一标识符来查找属性的值(真或错误)。

我已经尝试了一个“for 循环”,我将把它包含在我的代码中

function main(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Pat ID');
var zdPatIDs = sheet.getRange("A2:A").getValues();

for (id in zdPatIDs){
var ptArray = getZDUser(zdPatIDs[id])
// var updateProfile = coldChainOffered(ptArray)
var response = getResponse(ptArray.name);
}
}

// returns requestor ID from value of patients in google sheet
function getZDUser(zdPatIDs){
var url = 'https://someURL.com/api/v2/search.json?query='+zdPatIDs
var options =
{
"method": "get",
"contentType" : "application/json",
"headers":
{
"Authorization": "Basic " + Utilities.base64Encode("bearer/token:string of numbers")
},
"muteHttpExceptions": true
}

var response = UrlFetchApp.fetch(url, options)
var response = JSON.parse(response)
return response.results[0].requester_id
}

// returns json cold chain offered response from requester id function
function getResponse(ptArray){
var url = 'https://someURL.com/api/v2/users/' + ptArray + '.json'
var options =
{
"method": "get",
"contentType" : "application/json",
"headers":
{
"Authorization": "Basic " + Utilities.base64Encode("bearer/token:string
of numbers")
},
"muteHttpExceptions": true
}

var response = UrlFetchApp.fetch(url, options)
var response = JSON.parse(response)
return response.user.user_fields.cold_chain_offered
}

当我只有一个值且没有 for 循环时,会返回正确的响应,但是当有多个值时,我会抛出类型错误

最佳答案

你有很多事情要做,但并不是所有的都提供了。包括您的 JSON 的最小示例将有助于我们弄清楚发生了什么,但我会看看是否可以涵盖我看到的其他一些问题。

首先,重新声明 response 可能是问题的一部分。重新声明变量不是好的编程习惯,它甚至会使您的程序在其他语言中失败。在您的示例中,您至少执行了 2 次此操作,因此请解决该问题。

接下来,您通常应该在尝试使用对象之前null 检查您的对象。如果您的响应是空字符串、空 JSON 或根本没有该键,您将收到错误消息。在您的问题中包括错误也将帮助我们找出您遇到的问题。

此外,格式化您的代码以减少每一行的数量将有助于您弄清楚您发送的参数是什么,以及它们是否有任何错误导致您无法获得您期望的数据。 (我将在这里编辑问题,稍后向您展示我的意思。)使用 coding standard可能会有用,尤其是当您进行专业编码或有同行/合作伙伴查看您的代码时。

使用 Fiddler ,或类似的东西将帮助您弄清楚返回的数据到底得到了什么,因此您可以尝试找出您的代码“不正确”的地方。

最后,查看 JSON.parse 文档可能会帮助您确定您获取的 JSON 格式是否正确,以及它是否有任何其他不符合预期标准的地方。如果你正在编写服务器端的东西,使用 '" 之间的区别在 JSON 中是至关重要的,因为我已经找到了困难的方法。

https://www.w3schools.com/js/js_json_parse.asp

关于javascript - 类型错误 : Cannot Read Property "x" from undefined. 仅当我包含值数组时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57483649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com