Java 改装:使用jackson反序列化失败,没有任何错误

Java 改装:使用jackson反序列化失败,没有任何错误,java,android,json,jackson,retrofit,Java,Android,Json,Jackson,Retrofit,我使用以下代码调用RESTAPI:service Retrofit client = Client.getClient(); Call<ResponseBeanOutput<UserBeanOutput>> call = client.create(AuthResource.class).login("username","password","true"); Response<ResponseBeanOutput<UserBeanOutput>>

我使用以下代码调用RESTAPI:service

Retrofit client = Client.getClient();
Call<ResponseBeanOutput<UserBeanOutput>> call = client.create(AuthResource.class).login("username","password","true");
Response<ResponseBeanOutput<UserBeanOutput>> response = call.execute();
服务器以JSON格式发送响应,如下所示:

{
    "error": false,
    "message": "Successfull login",
    "errorCode": 0,
    "data": {
        "uid": 7,
        "email": "user@example.com",
        "name": "username",
        "nick": "usernick",
        "photoUrl": "media/profiles/defaultImageProfile.png",
        "lts": "aaaaeqc9lf9od82rk633aaaaa"
    }
}
我必须将此响应映射到一个通用对象ResponseBeanOutput,其中包含一个UserBeanOutput类型的字段(数据)(映射json对象中的对象“数据”)。因此,在最终响应中,eBeanOutput将映射字段“error”、“message”、“errorCode”,数据将是一个类型为“UserBeanOutput”的对象,其中包含“uid”、“email”、“nick”等

我的问题是所有对象都是空的(null),并且我没有错误

我还尝试从ResponseBeanOutput中删除泛型类型,并将带有字段“error”和“message”的简单bean映射到具有相关getter和setter的响应,但没有成功


我做错了什么?

根据@Yevhenii Semenov的建议,调试execute()方法,我解决了这个问题。我发现问题出在响应中没有返回body的API中,因此反序列化为null。 初始化客户端的代码很好


谢谢

根据@Yevhenii Semenov的建议,调试execute()方法,我解决了这个问题。我发现问题出在响应中没有返回body的API中,因此反序列化为null。 初始化客户端的代码很好


谢谢

您是否尝试调试改装?在大多数情况下,当我不明白为什么第三方图书馆不能像我期望的那样工作时,它对我来说是有效的。只要在.execute()方法的开头放一个断点,你就会一步一步地找到原因。你试过调试改型吗?在大多数情况下,当我不明白为什么第三方图书馆不能像我期望的那样工作时,它对我来说是有效的。只需在.execute()方法的开头放置一个断点,然后逐步找到原因。
{
    "error": false,
    "message": "Successfull login",
    "errorCode": 0,
    "data": {
        "uid": 7,
        "email": "user@example.com",
        "name": "username",
        "nick": "usernick",
        "photoUrl": "media/profiles/defaultImageProfile.png",
        "lts": "aaaaeqc9lf9od82rk633aaaaa"
    }
}