服务器的预期json响应应为:
{
"teacher": {
"123": {
"_id": "389",
"name": "test_fast_teacher1"
}
}
}
服务器返回json:
{
"teacher": [
]
}
无论如何要处理这个破碎的json响应? 在我从Gson切换之前,教师对象仍将被反序列化,只是它将为null。通过使用Moshi,错误将被抛出,我无法继续正确序列化的其他json。
请参阅the link以获取作者的回复。
答案 0 :(得分:1)
这样的事情怎么样?
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
其中DefaultOnDataMismatchAdapter
为Jesse's code you can copy into your code base.
当教师类型以意外格式返回时会产生JsonDataException,它将默认返回到您的设置值(在本例中为null)。