网站搜索

在 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 链接。

相关文章