JsonParseException: Unexpected character ('?' (code 255))
来源:互联网 发布:淘宝特卖商城女装 编辑:程序博客网 时间:2024/04/26 08:43
今天再次调试客户端上传JSON数组的、后台接收的功能。
好像是之前改过客户端程序,今天发送的时候后台报错:
JsonParseException: Unexpected character ('?' (code 255))
看来又是后台接收到的JSON格式有误。
解决思路:查看一下发送的JSON内容究竟是怎样的,格式是否正确?
第一步,查看从文本文件中读出来的JSON数组,查看客户端控制台:
是标准的JSON格式,也就是说,这一步没问题。
第二步,查看从客户端发送后的HTTP内容,用HTTP工具查看:
问题来了,发出去的字符串,有乱码的情况,JSON格式被打乱了,后台无法进行JSON处理,因此报错。
再观察一下编码问题:
以ff开头,并不是UTF-8编码。
原因找到了,也就是在发送环节出现了编码问题。于是找到发送代码:
DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); dos.writeBytes(content);//问题出在这一句
前面从文本文件中读出字符串时用的是UTF-8编码,而在向网络发送时,直接用了writeBytes(),而没有指定编码,所以问题很有可能就在这一步。
于是修改一下发送代码,指定编码格式:
DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); dos.write(content.getBytes("UTF-8"));
再次观察一下发送内容:
JSON格式正确,没有乱码问题。
再观察一下编码:
以ef bb bf 开头,这次是UTF-8格式了,正确。
总结:
这个JSON无法解析,非法字符的问题,已经遇到了好几次,大概的原因总结如下:
1. 非技术性的:笔误,打错字了,例如把英文逗号打成了中文逗号,把英文双引号打成了中文双引号。
2. 技术性的:编码问题,前后编码不一致。
还有其他原因,也可依照类似的思路进行推导。
0 0
- JsonParseException: Unexpected character ('?' (code 255))
- org.codehaus.jackson.JsonParseException: Unexpected character ('<' (code 60)): expected a valid valu
- JsonParseException: Unexpected character ('?' (code 239)): was expecting comma to separate OBJECT en
- flume nginx 日志处理异常 JsonParseException: Unexpected character ('(' (code 40)): expected a valid value
- org.codehaus.jackson.JsonParseException: Unexpected character ('e' (code 101)): was expecting comma
- JsonParseException: Unexpected character ('' (code 65279 / 0xfeff)): expected a valid value
- org.codehaus.jackson.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to b
- Unexpected character ('<' (code 60)): expected a valid value ...
- ElasticSearch {"error":"MapperParsingException[failed to parse];JsonParseException[Unexpected charac
- JSON.parse: unexpected character
- Unexpected character ('P' (code 80)): was expecting comma to separate OBJECT entries
- Error : Unexpected protocol character/message
- Character code tableGB2312
- Character 中的code point
- JSON.parse: unexpected character的排查
- js报错:JSON.parse: unexpected character
- Json Unexpected character in stream: r
- browserify出现ParseError: Unexpected character '�'
- TextView自我了解
- Maxwin-z/XListView-Android(下拉刷新上拉加载)源码解析(一)
- twemproxy对redis集群
- 静态动态编译等基础知识
- OpenCV: 实现将三幅图像合并在一张图片
- JsonParseException: Unexpected character ('?' (code 255))
- Linux内核中SPI总线驱动分析
- hdoj 测试你是否和LTC水平一样高 1407 (直接枚举)
- Web-layout-1-use with jade-hide-show-mode
- 蓝桥杯 BASIC-8回文数
- react-native 学习指南
- iOS本地通知 UILocalNotification 笔记
- 华为机试——删除字符串中出现次数最少的字符
- 关于整体竖屏,单个界面横屏的问题