最近在开发一个项目时,遇到了一个奇怪的问题:在我把json文件中的一些字段加上注释之后,无法正常解析。
{ "name": "张三", "age": 20, //"gender": "男", "email": "zhangsan@example.com" }
以上就是我加上注释后的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文件中加入注释,最好使用多行注释(/* */),而不要使用单行注释(//)。