在 TypeScript 中无法将 JSON 数据传递给 JSON.parse()
当使用 JSON.parse() 时,TypeScript 会抛出错误。当我传递给它这个 JSON 数据时:
{
"AXzgeQ7vXOjWnFrgjHiM": {
"0-17-13955610754117-8-2021": {
"channelId": "17",
"end": "1642091400000",
"id": "0-17-13955610754117-8-2021",
"start": "1642090860000",
"title": "Yle Uutiset Alueeltasi",
"type": "broadcast"
}
}
}
它是这样导入的:import stubReminders from './stub_data.json';
它抛出错误:
类型为 '{ AXzgeQ7vXOjWnFrgjHiM: { "0-17-13955610754117-8-2021": { channelId: string; end: string; id: string; start: string; title: string; type: string; }; }; }' 的参数不可赋值给类型为 'string' 的参数。ts(2345)
我应该改变什么才能成功使用 JSON.parse()?
答案#1
JSON.parse 函数以字符串作为参数。你正在尝试传递一个对象给它。因此,如果你想使用 JSON.parse,你必须先将其转换为字符串。
但请记住,被导入的对象已经是一个对象,所以我认为没有必要解析它。
const obj = {
"AXzgeQ7vXOjWnFrgjHiM": {
"0-17-13955610754117-8-2021": {
"channelId": "17",
"end": "1642091400000",
"id": "0-17-13955610754117-8-2021",
"start": "1642090860000",
"title": "Yle Uutiset Alueeltasi",
"type": "broadcast"
}
}
}
console.log(JSON.parse(JSON.stringify(obj)))
答案#2
尝试直接访问你导入的 stubReminders,不要尝试解析它。我已经测试了一个例子,导入会自动解析 JSON。
我希望这能行。
还可以查看这个 codesandbox 链接。
