我在spring-data-rest的文档中发现它使用了自己的objectMapper实现。
我想知道是否可以重用此objectMapper,这样我可以拥有与spring-data-rest端点中相同的实体表示形式
spring-data-rest
例如,没有任何杰克逊objectMapper bean,我有这个
端点:GET / api / companies
"createdDate": { "content": "2016-12-25T12:39:03.437Z" }, "lastModifiedDate": null, "createdById": null, "lastModifiedById": null, "active": true, "name": "A6", "addressSecondary": null, "foundingDate": { "content": "2016-01-01" },
但是对于我的控制器,我有:
"createdDate": { "nano": 437000000, "epochSecond": 1482669543 }, "lastModifiedDate": null, "createdById": null, "lastModifiedById": null, "active": true, "name": "A6", "addressSecondary": null, "foundingDate": { "year": 2016, "month": "JANUARY", "era": "CE", "dayOfYear": 1, "dayOfWeek": "FRIDAY", "leapYear": true, "dayOfMonth": 1, "monthValue": 1, "chronology": { "calendarType": "iso8601", "id": "ISO" }
这是我自己的控制器实现:
@RequestMapping(method = RequestMethod.GET, value = "companies", produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity<?> testRead() { List<Customer> customerRepositoryList = customerRepository.findAll(); Resources<Customer> resources = new Resources<>(customerRepositoryList); return ResponseEntity.ok(resources); }
我的代码中没有任何objectMapper的bean。
如何获得相同的序列化?
我认为您只想正确输出 LocalDate 和 LocalDateTime 字段。如果是这样-将以下依赖项添加到您的项目中:
<!-- JDK 8 DateTime support for Jackson --> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency>
这些对字段的注释:
@JsonFormat(pattern = "yyyy-MM-dd") private LocalDate date; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime dateTime;