【发布时间】:2018-09-18 03:12:00
【问题描述】:
我有一个 .json 文件,其中存储了人们的姓名。我正在使用节点管理器中的文件系统从该文件中读取内容,然后尝试将此 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 的文件系统包。
【问题讨论】:
-
我已经尝试了所有这些方法,但由于未知原因我仍然得到类型字符串。
-
我建议在每条语句之后执行一个 console.log() 并查看它的格式,这样更容易理解哪里出了问题。还将 fs.readFileSync 分配给一个变量,然后重用它。它更具可读性 IMO。
-
只需使用
require('./data/users.json')。
标签: javascript json node.js npm