如何正确解析首尾带单引号、无法用substring截取处理的JSON数据
解决方案
你遇到的是JSON被重复序列化的问题,可通过以下两种方法解析:
方法1:去除首尾包裹引号后解析
先移除字符串首尾的空白和外层包裹的单/双引号,再执行JSON解析:
// rawStr 为你从视图层拿到的原始字符串 const cleanedStr = rawStr.trim().replace(/^['"]|['"]$/g, '') const parseResult = JSON.parse(cleanedStr)
方法2:两次执行JSON.parse
你提供的原始内容本身是合法的JSON字符串序列化后的结果,可直接两次调用解析方法:
// 第一次解析移除外层包裹和转义符,得到标准JSON字符串,第二次解析为对象 const parseResult = JSON.parse(JSON.parse(rawStr))
根源优化建议
建议从返回数据的上游逻辑调整,避免对已经序列化完成的JSON字符串做二次序列化,直接返回JSON格式数据即可,下游无需额外处理即可直接使用。
内容的提问来源于stack exchange,提问作者Murat Durak
相关产品推荐
相关产品推荐

