我遇到了这个问题,我不想解决这个问题,但想办法对 GSON 说“跳过错误并继续”解析:
Can't parses json : java.lang.IllegalStateException:
Expected a string but was BEGIN_OBJECT at line 1 column 16412
使用的代码:
JsonReader reader = new JsonReader(new StringReader(data));
reader.setLenient(true);
Articles articles = gson.create().fromJson(reader, Articles.class);
数据是(为了简化):Articles->Pages->medias.fields。当前错误中的一个字段被定义为字符串,但我正在接收一个对象(但同样只出现一次)。我无法在任何地方添加保护,所以我的问题是:“GSON 中是否有跳过并继续?
当节点上出现问题时,我想避免使用 GSON 出现 JsonSysntaxException,并且我希望至少能够检索解析的部分数据。在我的情况下,我将拥有 99.999% 的数据,并且只有我的错误字段为空……我知道它看起来不干净,但我会启用“严格模式”进行单元测试或持续集成以检测问题,并且在生产中我会启用“软模式”,以便我的应用程序可以启动(即使服务器端出错)。我不能对我的习惯说,你的应用程序无法启动,因为一篇文章的数据无效。
GSON 是否有“跳过并继续出错”?