无法处理角度2+中的意外错误

时间:2018-08-13 16:33:24

标签: javascript angular typescript

在这里我正在尝试一种功能,它将有一个文件上传,我可以上传一个JSON文件,并且该数据将被发布到文本区域,而且我们还可以在此处键入JSON结构,在按下按钮之后,数据将被转移到另一个文本区域,这将删除所有的空白和新行等。 所有这些都工作正常,但是在这里我的问题是如果我输入普通文本并按Enter键,则会出现类似意外令牌的错误

下面是我正在使用的JSON结构

[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
}
]

下面是我的堆栈闪电代码

https://stackblitz.com/edit/angular-zgyxet

如果我输入JSON结构,则可以正常工作,但如果输入纯文本,则该如何处理此错误给了我一个错误。

1 个答案:

答案 0 :(得分:2)

该错误消息是从JSON.parse()方法获取的,因为我们无法将普通字符串解析为JSON(即不是JSON格式的字符串)。

请将您的JSON.parse()方法放在try / catch块中,如下所示:

test() {
    var data = this.TextData;
    var dataInfo = data.replace(/\s+/g, '').trim();
    var info = '';
    try {
        var info = JSON.parse(dataInfo);
    } catch(e) {
        alert('JSON parse error');
    }

    this.TextData1 = info;
}