gpt4 book ai didi

javascript - NodeJs JSON 解析问题

转载 作者:行者123 更新时间:2023-11-30 14:40:41 24 4
gpt4 key购买 nike

我有一个 .json 文件,其中存储了人名。我正在使用 Node 管理器的文件系统读取此文件的内容,然后尝试将此 json 转换为字符串并将其解析为 JS 对象。将其解析为 JS 对象后,我得到的是字符串类型而不是对象。这是示例 json 文件:

{
"21154535154122752": {
"username": "Stanislav",
"discriminator": "0001",
"id": "21154535154122752",
"avatar": "043bc3d9f7c2655ea2e3bf029b19fa5f",
"shared_servers": [
"Reactiflux",
"Discord Testers",
"Official Fortnite",
"Discord API"
]
}
}

这是处理数据的代码:

const string_data = JSON.stringify(fs.readFileSync('data/users.json', 'utf8'));
const data = JSON.parse(string_data);
console.log(typeof(data)); // <-- this line here shows the type of data as string
const results_array = Object.values(data);

其中 fs 是来自 npm 的文件系统包。

最佳答案

不要使用 JSON.stringify,因为它会进一步改变 JSON 对象的字符串表示形式。下面是正在发生的事情的一个例子

想象一下,如果您的文件中有如下所示的数据

{
"key": "value"
}

当您读取文件(使用 readFileSync)并应用 JSON.stringify 时,它会转换为如下所示的新字符串。您会注意到双引号现在被转义了

"{\"key\": \"value\"}"

现在,当您使用 JSON.parse 解析它时,您将返回从文件中读取的相同字符串,而不是获取所需的 object

基本上是先执行再撤销stringify操作

关于javascript - NodeJs JSON 解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49720767/

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