Gson解析Json字符串出现异常:Expected a BEGIN_ARRAY but was STRING at line 1 column 107 $的解决方法
2016-08-23 15:56
936 查看
最近在做登陆功能,需要解析服务器返回的json数据,在解析时我用了Google自带的Gson解析器,用bean类保存解析出来的数据,为确保bean类格式的正确性,用AndroidStudio插件GsonFormat实现,但是解析一直报错:
“Expected a BEGIN_ARRAY but was STRING at line 1 column 107 $........”,
在网上查了半天,网友提供的方法试了很多,虽然报的异常一模一样,但是问题还是没有解决。弄了两天,忽然发现,原来是后台传给我的json格式有问题,修改之后,问题解决。
修改之前的json :
“Expected a BEGIN_ARRAY but was STRING at line 1 column 107 $........”,
在网上查了半天,网友提供的方法试了很多,虽然报的异常一模一样,但是问题还是没有解决。弄了两天,忽然发现,原来是后台传给我的json格式有问题,修改之后,问题解决。
修改之前的json :
{"success":false,"loginMsg":"用户名或密码不正确","sessionId":"","menu":""} 就是menu的值格式错误,这时menu值为空,解析之后得到的空字符是String类型的值,而我根据后台给我有值的menu在bean中将menu定义为List,所以报错。 修改之后的json:
{"success":false,"loginMsg":"用户名或密码不正确","sessionId":"","menu":[]} 头大,这样的错误真心不好发现,对于我这样的新手,由于不常见,就拿过来让遇到同样问题的参考一下,及时干掉bug!
相关文章推荐
- Gson解析json时出现Expected a string but was BEGIN_ARRAY异常,由此发现Gson和FastJson区别
- Expected a string but was BEGIN_OBJECT at line 1 column 2 path $(不让retrofit2自动替我解析json)
- Gson 解析时候报错: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
- java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 296
- 解析json Expected BEGIN_ARRAY but was NUMBER at line 1 column 5
- Java解析HttpClient获取的Json字符串报错Expected BEGIN_OBJECT but was STRING
- Expected BEGIN_OBJECT but was BEGIN_ARRARY at line 1 column 2 path$异常解决方法
- android json解析java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1报错
- Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 解决办法
- Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 解决办法
- Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 解决办法
- Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 解决办法
- Expected BEGIN_OBJECT but was BEGIN_ARRARY at line 1 column 2 path$异常解决方法
- Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2
- java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
- Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 4171 异常的解决方法
- java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 81
- 关于Gson解析异常:Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
- json解析时出现异常org.json.JSONException: A JSONObject text must begin with '{' at character 1 of {的解决方法
- Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 492