小程序json.parse错误

错误详情

今天查看上线的微信小程序后台,发现了一个这样的错误:

Unexpected token in JSON at position 52;
at pages/send/send onShow function;
at api request success callback function   

于是我打开调试工具查看源代码并且调试:

VM792:1 thirdScriptError
Unexpected token 
in JSON at position 52;at pages/send/send onShow function;
at api request success     callback function
SyntaxError: Unexpected token 
in JSON at position 52
at JSON.parse (<anonymous>)
at success (http://127.0.0.1:60162/appservice/pages/send/send.js:130:35)
at http://127.0.0.1:60162/appservice/utils/bmob.js:2293:37
at wrappedResolvedCallback (http://127.0.0.1:60162/appservice/utils/bmob.js:2219:48)
at http://127.0.0.1:60162/appservice/utils/bmob.js:2171:34
at Object._.each._.forEach [as _arrayEach] (http://127.0.0.1:60162/appservice/utils/underscore.js:161:17)
at Bmob.Promise.resolve (http://127.0.0.1:60162/appservice/utils/bmob.js:2170:18)
at wrappedResolvedCallback (http://127.0.0.1:60162/appservice/utils/bmob.js:2228:37)
at http://127.0.0.1:60162/appservice/utils/bmob.js:2171:34
at Object._.each._.forEach [as _arrayEach] (http://127.0.0.1:60162/appservice/utils/underscore.js:161:17)   

果不其然,小程序已然上线,这个错误一定不能忍

调试过程

通过错误信息定位到出错的代码

通过上面的报错信息:
at success (http://127.0.0.1:60162/appservice/pages/send/send.js:130:35)
定位到出错的代码是在130行:
var jsonB = JSON.parse(jsonA);

上网浏览查询相关资料

网上的说法不一而足,实在不知道该听信哪家之言
不过都集中在json文件不能有注释json字符串url有误json字符串有特殊字符

定位原因

排除了几种错误后还没有解决问题,有点心灰意冷,
尝试着输出json字符串中的每一个字符

51 "。"
52 "
"
53 "2"

等等,换行符确是是个特殊字符(ps,在js里面\r是回车符,\n是换行符,)
(在小程序中,我这个jsonA是包含用户的键盘输入信息的)

解决办法

jsonA = jsonA.replace('\n','')

后话

小程序的预览可以查看: 点击查看
小程序的所有源代码: github地址

本文标题:小程序json.parse错误

文章作者:月小水长

发布时间:2018年11月14日 - 13:11

最后更新:2018年11月14日 - 14:11

原始链接:https://inspurer.github.io/2018/11/14/小程序json-parse错误/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

您的赞助将鼓励我继续创作!
-------------本文结束感谢阅读-------------