在用Gson解析如下Json的时候
String jsonStr = "{code:403,msg:无查询好友信息,result:[]}";
解析代码为:
Gson son = new Gson();
MessageInfo info = son.fromJson(jsonStr, MessageInfo.class);
System.out.println(info.getCode());
System.out.println(info.getResult());
System.out.println(info.getMsg());
MessageInfo.java
private int code;
private String msg;
private Result result;
result为空的时候,就会出现异常
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 31
望大神帮下忙,解决下,这个怎么来解析
Gson解析Json数据gson 解析json数据Android解析json数据(Gson)在你返回的json中result:[]在gson中会以数组的形式来解析而你fromJson(jsonStr, MessageInfo.class)传入的是一个对象数据这样gson肯定就抛错了。解决办法:对返回数据进行判断一下 或者 让服务器返回null形式。
你应该做的是尝试的去解析,那肯定是 try catch 啊,因为当你没有数据的时候,相当于你这个对象null的,会报出空指针异常的java 对json数据格式要求非常严格,比如msg,至少应该是==》msg:"无查询好友信息"。不然java是没办法解析的,最好的方式还是=>"msg":"无查询好友信息"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。