gpt4 book ai didi

javascript - JSON.parse 适用于零元素数组 (node.js)

转载 作者:行者123 更新时间:2023-11-30 20:58:22 25 4
gpt4 key购买 nike

根据文档JSON.parse将第一个参数作为字符串。我发现了一个意想不到的行为:

try {
const a = JSON.parse([
'{"helloworld": 1}',
]);
console.log(a);
} catch (ex) {
console.error(ex);
}

我预计它会失败,因为提供的输入参数是一个数组。相反,JSON.parse 成功解析数组 [0] 元素并将其打印出来(在 node.js 中)。

但是,如果您传递包含两个元素的数组,JSON.parse 将出错

try {
const b = JSON.parse([
'{"hello": 1}',
'{"hello2": 2}',
]);
console.log(b);
} catch (ex) {
console.error(ex);
}

为什么会这样?

最佳答案

JSON.parse 是一个需要字符串的内部 JS 方法。但是,如果给出其他类型,它将把它转换为字符串。对于数组,到字符串的转换是 array.join(',')

因此,当有一个元素时,它只会将第一个元素转换为字符串。当向 JSON.parse 提供一个包含多个元素的数组时,它将出错,因为输入 JSON 无效。

关于javascript - JSON.parse 适用于零元素数组 (node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47402142/

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