如何在 Restful API 正文响应中将 Java 'java.time.Instant' 属性作为 json 值返回?

use*_*835 7 java rest spring java.time.instant

我有一个 Spring Boot Restful API 服务,它在其响应中返回一个 Java 对象,该对象被转换为 json。

Java 对象属性之一是“Java.time.Instant”。我应该如何将其转换为返回的 json 对象?

更新

我尝试过使用 @JsonFormat 但这不起作用......

返回的 Java 对象有一个“Instant”属性...

 @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ",timezone = "UTC")
 public Instant getRequested() {
     return Requested;
}
Run Code Online (Sandbox Code Playgroud)

这将在 json 响应正文中返回为...

"requested": {
    "epochSecond": 1499342121,
    "nano": 868000000
},
Run Code Online (Sandbox Code Playgroud)

我正在使用 Spring Boot 1.5.4

控制器的方法是...

@RequestMapping(value="/", method= RequestMethod.POST)
public AcceptedAccountRequest newRequest(@RequestBody NewAccountRequest aRequest) {
AcceptedAccountRequest anAcceptedRequest = createAccepted(aRequest);
return anAcceptedRequest;
}
Run Code Online (Sandbox Code Playgroud)

Man*_*ger 1

您可以简单地使用java.time.Instant它们的表示.toString() 如果您使用 Spring,您可能必须将 @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) 添加到您的 RestMethod 以确保它正确转换