使用TypeScript获取JSON文件元素数量及解析报错排查
错误原因与解决方法
解析报错原因
你遇到的SyntaxError: Unexpected token c in JSON at position 0是JSON解析阶段触发的错误,和后续取字段的逻辑无关,直接原因是传入JSON.parse()的file变量不是合法的JSON字符串,常见触发场景包括:
- Node.js环境下读取文件时未指定编码格式,拿到的是Buffer对象而非JSON文本字符串
- 实际获取的内容开头存在多余字符:你贴出的合法JSON第一个字符是
[,但解析器识别到的第一个字符是c,说明你拿到的内容前面有多余的明文前缀、不可见控制字符,或者文件保存时带了UTF-8 BOM头 - 读取文件失败,
file变量实际存储的是错误提示字符串而非文件内容
逻辑错误修正
等你解决了解析报错的问题后,还有一处逻辑错误需要调整:你贴出的JSON内容顶层就是数组结构,没有外层result字段包裹,所以不需要调用.result,直接取解析后对象的length属性即可,正确写法为:
let num = JSON.parse(file).length;
内容的提问来源于stack exchange,提问作者NonSens
相关产品推荐
相关产品推荐

