【问题标题】:Cannot pass JSON data to JSON.parse() in TypeScript无法将 JSON 数据传递给 TypeScript 中的 JSON.parse()
【发布时间】:2022-01-14 07:01:03
【问题描述】:

TypeScript 在使用 JSON.parse() 时会引发错误。当我将这个 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;结束:字符串; id:字符串;开始:字符串;标题:字符串;类型:字符串; }; }; }' 不可分配给“字符串”类型的参数。ts(2345)

我应该改变什么才能成功使用JSON.parse()

【问题讨论】:

    标签: typescript


    【解决方案1】:

    尝试按原样访问您导入的stubReminders,而不尝试解析它。我已经测试了一个示例,导入会自动解析 JSON。

    我希望这行得通。

    还可以查看此代码框link

    【讨论】:

    • 谢谢,我不知道它是在导入时自动解析的!
    【解决方案2】:

    JSON.parse 函数采用string as parameter。您正在尝试将对象传递给它。所以你必须先将其转换为字符串,如果你想使用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)))
    

    【讨论】:

      猜你喜欢
      • 2020-01-25
      • 2014-03-08
      • 1970-01-01
      • 2019-11-25
      • 2018-01-18
      • 1970-01-01
      • 2018-04-09
      • 2019-01-13
      • 1970-01-01
      相关资源
      最近更新 更多