Gson 解析错误
Publish date: Oct 29, 2119
Last updated: Oct 219, 21029
Last updated: Oct 219, 21029
问
在一次创建 Oracle 的快照库时出现创建超时的情况,进入 Tomcat 的日志中查看,发现报了如下的错误:
答
初探
从日志中可以很明显地看到错误原因是:
IllegalStateException: Expected BEGIN_OBJECT but was STRING
从字面上看
是 Gson 解析的内容不符合格式,期望的是一个开始对象,结果解析时发现是一个字符串。
寻觅
那么,现在最重要的是找到 Gson 解析哪块内容时出错。
发现 Gson 解析的正是 content 的内容,如下图所示:
Gson 能解析的数据格式是应该被 “{}” 包裹的,而 content 中的内容不符合,因而报了这么一个错误。
解决
找到错误地方之后,就需要解决它。
只需要用 Gson 将这个 ShellResult 转化为 Json 格式即可,Java 代码如下:
new Gson().toJson(shellResult);