3

来自服务器的预期 json 响应应该是:

{
  "teacher": {
    "123": {
      "_id": "389",
      "name": "test_fast_teacher1"
    }
  }
}

服务器返回 json 与此:

{
  "teacher": [

  ]
}

无论如何要处理这个损坏的 json 响应?在我从 Gson 切换之前,教师对象仍将被反序列化,只是它将为空。通过使用 Moshi,会抛出错误,我无法继续处理正确序列化的其他 json。

作者回复请参考链接

4

1 回答 1

3

这样的事情怎么样?

Moshi moshi = new Moshi.Builder()
    .add(DefaultOnDataMismatchAdapter.newFactory(Teacher.class, null))
    .build();

JsonAdapter<Teacher> adapter = moshi.adapter(Teacher.class);

Teacher teacher = adapter.fromJson(json);
// teacher == null

Jesse 的代码在哪里,DefaultOnDataMismatchAdapter可以将其复制到您的代码库中。

当 Teacher 类型以会产生 JsonDataException 的意外格式返回时,它将默认返回到您的设置值(在本例中为 null)。

于 2017-11-03T18:25:06.703 回答