【问题标题】:jackson converting timestamp to long杰克逊将时间戳转换为长
【发布时间】:2020-11-20 14:05:43
【问题描述】:

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

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

所以它给出了以 columnName 为 key 和以 columnValue 为 value 的地图列表。 然后我使用ObjectMapper 将地图转换为json

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

该表有一个列createdDate,其类型为timestamp。 但是当 objectmapper 将 map 转换为 json 时,timestamp 会被转换为 long。

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

【问题讨论】:

    标签: java


    【解决方案1】:

    将 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);
    

    【讨论】:

    • 我没有pojo,怎么加注解。我也不能pojo
    猜你喜欢
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2019-05-18
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    相关资源
    最近更新 更多