今天处理json的时候,遇到一个问题,一个json看上去根本没有错,但是就是解码失败,当时很懵逼,根本搞不明白,在线解析json的也是这样,会报错
{ "a": 1, "b": 2, "c": 3 }
Parse error on line 5: ..."b": 2, "c": 3} ---------------------^ Expecting 'EOF', '}', ',', ']'
错误就像方框中一样,
其实原因是代码最后包含有不可见字符,也就是控制字符,当查看字符串长度的时候就能发现包含控制字符和不包含控制字符的字符串长度都不一样。
到最后我也没找到原因,只好把使用php的strrpos函数,找到字符串中最后一个可见字符的位置,在使用substr函数来截取字符串,舍弃最后的不可见字符,这种方法的局限性就是必须知道最后一个可见字符,而且不可见字符都在最后面,这样才能处理,至于其他情况,也暂时没有很好的解决方法。