我正在使用 GSON 进行改造。我正在连接的 Web 服务有时会向客户端返回一个空的负载。我不是这样 build 的。问题在于,当 GSON 尝试解析空负载时,这会导致 json 解析异常。我怎么能处理这个?有没有办法使回调具有空模型对象?
例如服务器响应可能是“”或者它可能是:
{
"foo":{"id":"123","description":"abcd"}
}
我在 java 中也有:
@Data // This comes from lombok to generate setter,getter,no args constructor...
public class Foo{
private int id;
private String description;
}
我的 retrofit 服务如下所示:
public interface MyService{
@POST("/poorly/designed/api/foo")
void getFoo(@Header("Authorization") String auth, Callback<Foo> callback);
}
免责声明:我只是打了一个最简单的例子,如果我写的东西在语法上可能不完全正确,我可以原谅我。你明白了。
最佳答案
Retrofit 通常应该消除所有缺失值。您的代码的问题是服务器返回一个对象,其中包含 Foo
而不仅仅是 Foo
。尝试添加另一个类
class FooContainer {
Foo foo;
}
然后让您的 API 调用返回一个 FooContainer
而不是 Foo
。
关于java - 使用 Retrofit/GSON 如何处理有时为空而有时为空的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715504/