关于json解析时异常org.json.JSONException: A JSONObject text must begin with '{' at character 1 of ?{的解决方法

出现这个异常的原因是json串格式不正常,没有"{"开始或没有"}"结尾,仔细检查下json文件的格式一般就可以解决这个问题。但是有时候json文件是正常的,仍然有这个异常信息,怎么办呢,这个是因为你的json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异常,一般会出现这样的情况是读取的json串是来自于服务器或本地的文件,文件头里自带编码,就我碰到情况来看在Android2.1的手机会报异常,高于2.1的手机是正常的。


解决方法:我们来看看带编码的文件有什么不同,用UE打开带编码和不带编码的json文件,然后切换到HEX 模式,会发现带编码的文件比不带编码的文件多三个字节,读取带编码的文件时只要不读取前三个字节,这样就可以正常解析了。
带UTF-8编码的文件

技术分享


不带编码的文件:

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。