淘先锋技术网

首页 1 2 3 4 5 6 7

最近在开发一个项目时,遇到了一个奇怪的问题:在我把json文件中的一些字段加上注释之后,无法正常解析。


{
    "name": "张三",
    "age": 20,
    //"gender": "男",
    "email": "zhangsan@example.com"
}

json加注释后无法解析

以上就是我加上注释后的json代码。其中,我注释掉了"gender"字段。然后,我使用JavaScript中的JSON.parse方法去解析这个json文件。


try {
    var json = '{"name": "张三","age": 20,//"gender": "男","email": "zhangsan@example.com"}';
    var obj = JSON.parse(json);
    console.log(obj);
} catch (error) {
    console.error(error);
}

结果,控制台输出的是一个错误:


VM782:5 Uncaught SyntaxError: Unexpected token / in JSON 
at JSON.parse (<anonymous>)
at <anonymous>:5:20

错误提示说,在json中有一个意外的“/”符号。这时,我想到了一个可能的原因:注释中使用的“//”符号导致了解析错误。

于是,我对代码进行修改,把注释中的“//”替换成了“/* */”。代码如下所示:


{
    "name": "张三",
    "age": 20,
    /*"gender": "男",*/
    "email": "zhangsan@example.com"
}

然后,我再次运行解析json文件的代码,这次却没有出现错误了。可以正常解析并输出json对象。


{
    name: "张三",
    age: 20,
    email: "zhangsan@example.com"
}

综上所述,如果在json文件中加入注释,最好使用多行注释(/* */),而不要使用单行注释(//)。