开发者社区> 问答> 正文

Gson解析Json数据出现了异常

在用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

望大神帮下忙,解决下,这个怎么来解析

展开
收起
杨冬芳 2016-07-05 17:38:38 3436 0
1 条回答
写回答
取消 提交回答
  • IT从业

    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":"无查询好友信息"

    2019-07-17 19:51:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像