//string with correct json format
{"reaction":"\ud83d\udc4d","user":{"id":"xyz"}}
//after JSON.parse()
{ reaction: '', user: [Object] }
我想做的是保持反应值编码,但是
JSON.parse()
并不完全满足我的要求。更新
最终,我决定保留
JSON.parse()
,并像@Brad建议的那样修复数据库问题。我改变了数据库格式,但这还不足以解决问题,所以我找到了这个。每个语句现在都必须以SET NAMES utf8mb4;
开头,然后是查询。此外,在连接中,您必须有这些{charset : 'utf8mb4', multipleStatements: true}
。没有node-mysql适当的文档,很难找到最好的答案,但最终我学到了很多东西,谢谢。
JSON.parse
不会对任何内容进行编码,我觉得这可能是控制台或者你记录数据的方式。解析后的数据的预期用途是什么? - JamesJSON.stringify
进行存储在数据库中?除非您希望对象上的toString
反序列化(它不会这样做),否则我无法看到这是如何发生的。 - James