繁体   English   中英

杰克逊将时间戳转换为长

[英]jackson converting timestamp to long

我正在尝试从表中获取所有列并将其转换为 json。 所以尝试如下

List<Map<String,Object>> map=jdbcTemplate.queryForList("select * from test");

所以它给出了一个映射列表,键是 columnName,值是 columnValue。 然后我使用ObjectMapper将地图转换为 json

String tableJson=new ObjectMapper().writeValueAsString(map);

该表有一列createdDate ,其类型为timestamp 但是当 objectmapper 将映射转换为 json 时,时间戳被转换为 long。

请帮助我如何在不将时间戳转换为长的情况下创建 json。 它可以是字符串日期。

jackson-databind添加到您的项目中

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>

现在您可以控制如何转换字段值,使用

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd@HH:mm:ss.SSSZ")
private Date createdDate;`

可以直接在ObjectMapper中设置日期格式

ObjectMapper objectMapper = new ObjectMapper();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSZ");
objectMapper.setDateFormat(df);
String tableJson=objectMapper.writeValueAsString(map);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM