为何JSON.parse()解析字符串"sjdh"未报错?NodeJS技术咨询
问题解析:为什么JSON.parse能成功解析该Buffer转换后的字符串?
你搞错了msg.toString('utf-8')的输出结果——它不是sjdh,而是**"sjdh"**(带双引号的字符串)。
原因很简单:你传入Buffer.from的字节数组里,第一个和最后一个元素都是34,这个数值对应的ASCII字符就是双引号(")。中间的115、106、100、104分别对应s、j、d、h,所以拼接起来的完整字符串是被双引号包裹的"sjdh"。
而JSON的字符串值要求必须用双引号包裹,所以JSON.parse("sjdh")完全符合JSON语法规范,解析后会返回字符串sjdh,这就是代码能成功运行的原因。
你可以直接在Node环境里验证这一点:执行console.log(msg.toString('utf-8')),就能看到输出是带双引号的"sjdh"。
内容的提问来源于stack exchange,提问作者HarelDanieli
相关产品推荐
相关产品推荐

