gpt4 book ai didi

javascript - Axios API 响应 JSON 主体具有 "true/false"作为字符串类型而不是 bool 值

转载 作者:行者123 更新时间:2023-11-29 15:09:04 25 4
gpt4 key购买 nike

我正在努力将 angularjs 应用程序转换为 React 并决定使用 axios 进行 API 请求。一切正常,除了一些具有 JSON 类型的响应主体,但 bool 值是字符串类型而不是 bool 值。它与 angularJs $http 一起工作正常,但一些端点返回类似。

模块是AngularJs + Typescript 2.9.1 + axios 0.19.0

let request = Axios({
...requestConfig,
url: resource, method: 'get', responseType: 'json'
}).then(response => response);

响应主体是

{
some: "true"
}

但我异常(exception)

{
some: true
}

有什么想法吗?

最佳答案

[更新]为Phil指出,Boolean('false') 不起作用。我将代码更新为适用于“真”和“假”的内容,但如果您想涵盖所有可能性,则需要更复杂的函数。


如果 API 的响应完全如下所示:

{
"some": "true"
}

然后 axios 没有做错任何事情。库自动解析它们认为合适的值是危险的,看看 how Json.NET handles values that they think look like Datetime .

如果 API 返回的负载看起来完全像这样:

{
"some" : true
}

然后 axios 应该直接将其解析为 bool 值。

我建议你做的是,始终将值解析为 bool 值,即使它已经是一个:

let request = await Axios({...requestConfig,
url: resource, method: 'get', responseType: 'json'
});

let someValue = String(request.data.some) == "true";

这将适用于 Boolean("true") 以及 Boolean(true)

关于javascript - Axios API 响应 JSON 主体具有 "true/false"作为字符串类型而不是 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56784849/

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