由于BOM头导致的Json解析出错
json数据时发现报
org.json.JSONException: Value of type java.lang.String cannot be converted to JSONObject 错误。
查了半天都没有发现问题json格式正确。后来发现UTF-8有bom头问题。就去看了一下bom才发现原来php也有鸡肋。,
在看源码时发现原来android4.0的json包已经对这个问题做了处理。见代码:
public JSONTokener(String in) {
// consume an optional byte order mark (BOM) if it exists
if (in != null && in.startsWith("\ufeff")) {
in = in.substring(1);
}
this.in = in;
}
而2.2的代码:
public JSONTokener(String in) {
this.in = in;
}
问题很简单了在网络层将responseString过滤一下就ok。不明白就去看一下utf-8 bom头。
修改方法一:
String jsonString = getJsonString();
if (jsonString != null &&jsonString.startsWith("\ufeff")) {
jsonString = jsonString.substring(1);
}
修改方法二:
String jsonString = getJsonString();
jsonString = jsonString.substring(jsonString.indexOf(
"{"
),jsonString.lastIndexOf(
"}"
)+
1
);
由于BOM头导致的Json解析出错相关推荐
- java bom json,JSON字符串带BOM头ufeff
调用三方接口返回值JSON字符串带BOM头"\ufeff",JSON解析死活报错. 我是用SpringBoot的RestTemplate调用三方接口的,一开始返回值我是用对象接收返 ...
- Android中JSON解析细解及实例
1.JSON解析 (1).解析Object之一: {"url":"www.cnasda.com"} 解析方法: JSONObject demoJson = ne ...
- php转换编码去掉bom,UTF-8编码怎么去掉BOM头?
使用uft8编码或做页面的朋友会碰见过把页面保存时会发现页面是空白的但是页面确实有内容,后会会听说是bom头的问题,那么什么是bom头了,要如何解决因为bom头导致页面空白问题呢,下面我们一起来看看具 ...
- bug:生产问题,Golang解决csv文件用excel打开中文乱码问题及常见编码和BOM头关系
bug:Golang解决csv文件用excel打开中文乱码问题 1 场景及分析 场景:今天在生成csv文件之后,测试发现用office和wps打开乱码 分析:经过测试之后发现使用记事本打开不乱码,同时 ...
- Esp8266 --深入分析官方json解析源码及如何使用json接口解析心知天气
什么是json? 懵逼回答:[参考菜鸟教程] a.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) b.JSON 是轻量级的文本数据交 ...
- 诡异的json包含bom头
今日项目碰到 需要调用php的一个接口 结果一直报返回的json字符串转对象 bom头报错 Exception in thread "main" com.fasterxml.j ...
- android json解析异常,json数据解析异常而导致网络请求失败的解决办法(其一)
问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口时并未考虑Android端的json数据的解析,导致接口是这样的.... 正确请求 { " ...
- Json解析数据导致顺序改变问题
Json解析数据导致顺序改变问题 json解析的时候,通常顺序会发生改变,如果我们有保持原有顺序的需求的话可以通过如下方式 使用fastJson的Feature.OrderedField JSONOb ...
- Java Mail 附件名太长导致接收端附件名解析出错
http://blog.csdn.net/fl_zxf/article/details/60126910 http://blog.csdn.net/wty19/article/details/5060 ...
最新文章
- RDLC系列之六 打印纸张的大小(未解决)
- 30天敏捷结果(2):用三个故事驱动你的一周
- WPF之DataGrid
- Shell 判断文件或文件夹是否存在(不存在则创建)
- 所有的物理引擎演示程序
- Antlr中文文档初稿2(《ANTLR树分析器》)
- c 取数组 最大值 算法_拜托,面试别再问我最大值最小值了!!!
- ubuntu下安装ros出现“无法下载-package.ros.org中某个包-校验和不符”的解决方法...
- 【BZOJ2281】【博弈论+DP】 [Sdoi2011]黑白棋
- javaERP跨境电商平台,跨境电商源码,电商ERP源码,ERP源码
- storm风暴英雄 tempo_风暴英雄Tempo Storm 安娜版本天梯环境速报 安娜强度居T3
- 多益网络2022届校招提前批全面启动【免筛推荐码QEAQU】
- 马蜂窝 iOS App 启动治理:回归用户体验
- 软件工程-第1章 绪论
- 【JLOI2014】松鼠的新家
- Doris hdfs数据导入doris动态分区表
- 图解央行房贷新政 首付才是刚需族最大门槛
- 库位管理html,仓库日常管理之库位管理篇
- Dagger2使用详解
- 3gp播放没有声音的问题