我有这个示例类
public class UsersDetails {
private String name;
private Int id;
private String stuff;
private String extraStuff;
}
我还有我在数据库中保存的每个用户的日志,如下所示:
public class UserLog {
private String dateAccessed;
private String success;
private User User;
}
该类具有用户对象,因此我们知道用户的详细信息。基本上,我的最终目标是显示将“用户日志”详细信息发送回UI,但我希望响应中包含用户的最小详细信息,并且其外观应类似于:
{
"dateAccessed" : "date here",
"success" : "yes",
"name" : "name" (this one is from the user object within UserLog)
}
所以我制作了一个将在响应中使用的类,看起来像:
public class UserLogResponse {
private String dateAccessed;
private String success;
@JsonUnwrapped
UserDetailsLogResponse userLog;
static class UserDetailsLogResponse {
private String name;
}
}
我正在使用杰克逊将UserLog映射到UserLogResponse,
List<UserLog> userLog = grabLogFromDatabase();
List<UserLogResponse> userLogResponse = jacksonObjectMapper.convertValue(userLog,
new TypeReference<List<UserLogResponse>>() {});
因此,当我使用@JsonUnwrapped时,在UserLogResponse中将“名称”字段设置为null,但是当我不使用@JsonUnwrapped时,它可以正常工作,但是我不想使用@JsonUnwrapped,因为我没有希望我的回复嵌套Json。有关如何解决此问题的任何建议?