Expected BEGIN_ARRAY but was STRING 解决方案
(2014-04-10 17:15:21)
标签:
javaandroidjsongson |
分类: IT |
Expected
BEGIN_ARRAY but was STRING at line 1 column 2
解决方法:
revJson=revJson.replace("\\",
"");//去掉'/'
revJson=revJson.substring(1, revJson.length()-1);
//去掉头尾引号。
简单对象解析:
objmodel obj=gson.fromJson(objjson,
objmodel.class);
List解析
分析过程:
今天在使用gson解析从wcf服务端获取的json数据时遇到了这样的错误,换成fastjson错误依旧。
现在只能逐步排查。
数据库获取的数据串:
"[{\"tsid\":18,\"itemid\":3,\"taskcity\":\"济南\",\"execdate\":\"2014-04-10
00:00:00\",\"exectime\":\"9-16\",\"tasknum\":12,\"taskfinishnum\":0,\"status\":\"1\",\"statusdate\":\"2014-04-04
12:25:25\",\"lastnum\":12,\"onetaskreward\":0,\"tasktel\":\"053155584120\"}]"
1.获取到服务端的json数据是否和实体类匹配。检查通过。
2.检查json数据是否是规范的json格式。多了'\'。
去除'\'方法:revJson=revJson.replace("\\",
"");
可问题依旧。
3.把json数据保存成常量数据。
String strjson="[{\"tsid\":18,\"itemid......}]";
成功!
4.换回服务器获取的数据还是失败,仔细对比服务器数据格式发现头尾都有引号括着,或许是解析到引号不能正确识别为json所致。
去除引号:revJson=revJson.substring(1, revJson.length()-1);
测试成功!
前一篇:你好,愚人节!(七)
后一篇:似梦非梦