我不熟悉JavaScript和Axios,所以任何帮助都是很好的:)
我从Axios到URL的请求得到了这样的响应。
data: '{"id":"test1", "cool":"test2"}'
在尝试JSON.parse时,如下所示
const buildArray = (await axios(config)).data
let toJSON = JSON.parse(buildArray)
它给了我一个错误
Unexpected token in JSON at position 0
以下是我的代码和我正在尝试做的事情。对于每个Axios数据响应,我希望将其添加到数组项中并返回。
async function buildList(items, token){
try {
const list = []
let config = ''
for (item of items.items) {
config = {
method: 'get',
url: 'https://my.domain.com/v1/customers/' + item.id,
headers: {
'Authorization': 'Bearer ' + token,
'Accept': 'application/json'
}
}
const buildArray = (await axios(config)).data
list.push(JSON.parse(buildArray))
}
return list
} catch (err) {
throw Error ('buildList error: ', err.message)
}
}
4条答案
按热度按时间uqdfh47h1#
这样行吗?
lndjwyie2#
我有几件事你可以试一试。
1.我建议你澄清你的命名约定。如果构建数组变量是一个数组,则除非采用JSON格式,否则无法对其进行解析。我继续假设它就是您显示的响应数据对象。
1.尝试转义首引号内的引号。它看起来是这样的:
data: "{\"id\":\"test1\", \"cool\":\"test2\"}"
1.Axios回报了一个承诺。尝试在Promise.Then格式中使用它,而不是等待。
如果这些都不管用,请告诉我。祝你好运:)
jucafojl3#
请确保您的回复数据正确无误。如果在后端将数据作为对象返回,则不需要使用JSON进行解析。JSON.parse用于将字符串解析为JSON请运行以下命令并检查:
xoshrz7s4#
我终于找到了一种解决办法,但我不知道为什么Axios Response在我查看的每个地方都给了我正确的数据响应输出,但不知为什么有一个奇怪的输出?(问号)在字符串的开头,我只是在复制输出并将其粘贴到JSON验证网站后才意识到这一点。
基本上,从Visual Studio输出来看,它是正确显示的,大概是这样。
但出于某种原因,当我从Visual Studio复制此输出并将其粘贴到JSON验证网站时,它给出了这个结果。怪异的?(问号)
所以我试图找到一个JSON正则表达式验证,在运行了许多不同的正则表达式后,其中一个给出了一个未定义的结果,而不是?(问号),所以我在下面尝试了这个并成功了,但这是奇怪的,我不是一个开发人员来进一步讨论它,我只是发送这个答案来分享这个结果:)