【问题标题】:Deserialize date with PagedResources/embedded object. Jackson. Spring使用 PagedResources/embedded 对象反序列化日期。杰克逊。春天
【发布时间】:2018-04-19 11:27:11
【问题描述】:

我定义了@BeanobjectMapper,并设置日期格式如下:

ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm"));

当方法返回正常的ResponseEntity<SomeDTO> 时它可以工作。 示例 JSON 响应:

{
    "id": 888,
    "createdDate": "2017-11-06 13:50",
}

但是当我的控制器方法返回:ResponseEntity<PagedResources<SomeDTOResponse>>,然后createdDate 没有反序列化,我得到:

{
    "_embedded": {
        "someEntityResponseList": [
            {
                "id": 877,
                "createdDate": 1509877100151
            }
        ]
    },
    "_links": {
        ...
    },
    "page": {
        ...
    }
}

我的控制器:

@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<PagedResources<SomeDTOResponse>> getAllActiveAuctionsForLoggedUser(
        Pageable pageable, PagedResourcesAssembler assembler) {
    Page<SomeEntity> someEntites = someEntityService.getAllSomeEntities(pageable);

Page<SomeDTOResponse> response = assembler.toResource(someEntites.map(entity -> mapToResponse(entity))
return new ResponseEntity<>(response, HttpStatus.OK);
}

当我在最后一行return... 中放置断点时,对象response 包含:createdDate = {Timestamp@12184} "2017-11-05 10:54:14.345"mapToResponse() 这是我的自定义方法,但这不是问题。 那么如何才能得到正确的结果,正确的反序列化呢?

我的其他课程:SomeDtoResponseSomeEntity

@Data
public class SomeDtoResponse {

    private Long id;
    private Date createdDate;
}

@Entity
@Table(name = "SOME_ENTITY")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class SomeEntity {

    @Id
    @GeneratedValue
    @Column(name = "SOME_ENTITY_ID")
    private Long id;

    @NotNull
    private Date createdDate;
}

【问题讨论】:

标签: java json spring jackson objectmapper


【解决方案1】:

确保您使用的 Date 类应为以下类型:

import java.util.Date;

如果它是 Java.sql.Date,那么它会导致您面临的问题。 我希望这能解决您的问题。

【讨论】:

  • 不幸的是,不是这样。我检查了它,我到处使用java.util.Date
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 2019-08-04
  • 1970-01-01
  • 2019-11-15
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多