使用lambda-multipart-parser解析文件后无法获取JSON数据,JSON.parse也无效
问题解决方法
问题原因
你获取到的result.files[0].content本身是Node.js原生Buffer实例,不是普通JSON结构,data是Buffer的内部私有属性,不支持直接访问,因此直接取值会返回空。
解决方案
根据你使用场景选择对应处理方式:
场景1:读取文件文本内容(你示例的Buffer对应是CSV格式文本)
直接调用Buffer的toString方法转UTF-8编码即可拿到明文内容:
let result = await parser.parse(event); const fileContent = result.files[0].content.toString('utf8'); // 输出结果为:Accountnumber,Username,Password,Lconame,Status
场景2:获取Buffer对应的字节数组
不要直接访问data属性,使用Array.from转换即可得到完整的字节数组:
const byteArray = Array.from(result.files[0].content); // 输出结果和你之前看到的data字段数值完全一致
场景3:文件内容为JSON格式时解析为对象
先转字符串再调用JSON.parse即可:
const fileContent = result.files[0].content.toString('utf8'); const jsonData = JSON.parse(fileContent);
避坑说明
你之前直接调用JSON.parse失败是因为传入参数是Buffer实例,而非JSON格式字符串,完成转码步骤后即可正常解析。
内容的提问来源于stack exchange,提问作者iam you
相关产品推荐
相关产品推荐

