gpt4 book ai didi

javascript - 检查 REST 端点中返回的 JSON 值

转载 作者:行者123 更新时间:2023-12-01 03:21:05 27 4
gpt4 key购买 nike

我对 React-native(和 javascript)有点陌生,我正在努力做到这一点。

我有一个有用户的 api

https://api.example.com/users/

我希望它在我到达端点时检查 api 是否返回值

https://api.example.com/users/ {用户名}

所以像这样:

async function getUsersFromApi(userName) {
try {
let response = await
fetch('https://api.example.com/users/'+userName);
let responseJson = await response.json();

//if endpoint returns response
// alert("endpoint exists")

} catch(error) {
console.error(error);
}
}

我在评论中写的部分是我正在努力解决的部分。任何帮助将不胜感激。

最佳答案

response.ok属性会告诉您请求是否成功,这是确定资源是否存在的常用方法。如果具有给定用户名的用户不存在,则 REST API 应返回 404 error ,这将导致 response.okfalse

const response = await fetch('https://api.example.com/users/'+userName);
const userExists = response.ok;

请注意,如果您根本不打算使用响应正文,则执行 HEAD 更合适。要求。这指示服务器不应返回响应正文并跳过任何可能被浪费的相关计算。因此,请求在时间和带宽方面都更加高效。

const response = await fetch('https://api.example.com/users/'+userName. {
method : 'GET'
});
const userExists = response.ok;
<小时/>

编辑:回答下面的原始问题

假设您有一个 users 数组,您应该使用 Array#some()循环遍历它并确定其中的某个对象是否具有与为您的函数提供的用户名相匹配的用户名字段。

const userExists = users.some((user) => {
return user.username === username;
});
console.log(userExists); // true or false

另一方面,如果您需要返回该用户对象而不是 bool 值,则应该使用 Array#find()相反。

const user = users.find((user) => {
return user.username === username;
});
console.log(user); // user object or undefined

在使用find()的情况下,一定要处理未找到用户并返回未定义的情况。如果您不小心,您最终可能会访问 undefined 上的属性,这将引发错误。

关于javascript - 检查 REST 端点中返回的 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45192221/

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