使用@JsonUnwrapped时将值设置为null

时间:2018-08-10 04:18:52

标签: java json spring jackson jackson-databind

我有这个示例类

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。有关如何解决此问题的任何建议?

0 个答案:

没有答案