jho*_*ini 3 java json jackson web spring-boot
我用 Spring Boot 开发了一个休息服务。我想返回一个 json 响应,其中用户的生日以毫秒为单位。如何将java.time.LocalDateTime对象序列化为毫秒?
我的模型类:
@Entity(name = "users")
public class User implements Serializable {
@Id
@GeneratedValue
@Column(name = "user_id")
private Long id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "date_of_birth")
private LocalDateTime dateOfBirth;
. . .
}
Run Code Online (Sandbox Code Playgroud)
目前的回应:
{
. . .
"dateOfBirth":[2018,7,25,7,0],
. . .
}
Run Code Online (Sandbox Code Playgroud)
首选回应:
{
. . .
"dateOfBirth": 1532786354419,
. . .
}
Run Code Online (Sandbox Code Playgroud)
使用@JsonSerialize(using = CustomSerializer.class)
@Entity(name = "users")
public class User implements Serializable {
@Id
@GeneratedValue
@Column(name = "user_id")
private Long id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@JsonSerialize(using = CustomSerializer.class)
@Column(name = "date_of_birth")
private LocalDateTime dateOfBirth;
. . .
}
Run Code Online (Sandbox Code Playgroud)
自定义序列化器类:
public class CustomSerializer extends JsonSerializer<LocalDateTime> {
@Override
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
//add your custom date parser
gen.writeString(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()+"");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6717 次 |
| 最近记录: |