0
点赞
收藏
分享

微信扫一扫

【bug解决】java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING


一,项目场景:

如下图,在传输过程中报错。解决方法如下:

【bug解决】java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING_json字符串

二,问题描述


java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING


三,原因分析:

原因是Json解析的错误。报错位置为:

将json字符串转换成UserBean对象

results对应的应该是一个实体类,如果这个时候想把他解析为String或者List就会出现异常。

原因归根结底接受JSON的格式错误,我初步怀疑为编码格式,因为之前我的电脑在utf-8和GBK格式来回切换,给编译器干歇菜了,结果不是编码格式传输问题。

检查JSON数据规范即可。

四,解决方案:

这里的问题是:

用户端解释有json格式转换。将user对象转换成字符串,结果,服务端这边传输格式为String,所以,理所当然的报错了。

主要的还是检查JSON格式,规范等。

解决代码如下:

Gson gson=new Gson();
String data=gson.toJson(user);//将user对象转换成字符串
System.out.println("json字符串:"+data);


json字符串:{“username”:“2”,“password”:“5”}


再次传输,成功解决。



举报

相关推荐

0 条评论