0617 关于 fastjson报ArrayIndexOutOfBoundsExcept:160错误
最近改接口测试代码的时候,遇到了个问题报ArrayIndexOutOfBoundsException: 160错误 百度谷歌了半天也没找到解决办法, at com.alibaba.fastjson.serializer.SerializeWriter.writeStringWithDoubleQuote(SerializeWriter.java:868) 大概就是超长或者特殊字符 加断点跟踪了下,30多万字节的返回数据,难道是超长? 完全没有头绪,写了几行代码,单条跟踪试试吧 Stringcontentd="XXXXXXXXXXXXXXX"; JSONObjectjsonObject=JSON.parSEObject(contenta); System.out.println(jsonObject); 截断了些数据,测试了下,发现不会报错,真是超长? 再试了几次,发现原来是有特殊字符!!!传输的String中 有不可见字符,类似于空格,但又不是空格,应该就是不可见的特殊字符吧。 找到了问题的所在,接下来就是想想怎么解决了。 最好的办法就是fastjson可以支持特殊字符,作者大概一时半会也不会修改 自己修改源码,算了,我还太菜。 其实可以偷工取消下吧 我只要让返回数据正常打印出来就行。 contenta=contenta.replace("",""); 把特殊字符替换成空格。先解决眼前的问题。 加断点,跟踪下程序,replace一下。 这是目前想到的最简单快捷的方法了。不过也是治标不治本 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |