`
godfox
  • 浏览: 71706 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
文章分类
社区版块
存档分类
最新评论

使用Jackson时转换JSON时,日期格式设置

阅读更多

近日,使用Jackson转化JSON对象的时候,显示的时候,日期始终显示不正确,输出的日期是一串数字代表的时间戳,不符合要求,所以想到Jackson应当有方法设置输出的日期格式。后来一查果然有两种方式来实现:

1.普通的方式:

默认是转成timestamps形式的,通过下面方式可以取消timestamps。

objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);

 这样将使时间生成使用所谓的use a [ISO-8601 ]-compliant notation, 输出类似如下格式的时间: "1970-01-01T00:00:00.000+0000".

当然也可以自定义输出格式:

objectMapper.getSerializationConfig().setDateFormat(myDateFormat);
myDateFormat对象为java.text.DateFormat,具体使用清查java API

2.annotaion的注释方式:

先定义自己需要的格式,例如:

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;

/**
 *  java日期对象经过Jackson库转换成JSON日期格式化自定义类
 * @author godfox
 * @date 2010-5-3
 */
public class CustomDateSerializer extends JsonSerializer<Date> {

        @Override
        public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                String formattedDate = formatter.format(value);
                jgen.writeString(formattedDate);
        }
}

 然后在你的POJO上找到日期的get方法

 @JsonSerialize(using = CustomDateSerializer.class)
        public Date getCreateAt() {
                return createAt;
        }

 好了,记录完毕

分享到:
评论
4 楼 ljf_home 2016-06-12  
3 楼 Romotc 2012-04-04  
也有相应的反序列化配置方法:
1.objectMapper.getDeserializationConfig().setDateFormat(。。。);

2.JsonDeSerializer and @JsonDeSerialize(using = CustomDateDeSerializer.class) 
2 楼 唯快不破 2010-07-19  
唯快不破 写道
兄弟,当我序列化一java数组成json串时,如[Date,Date]。你提供的方法都不起作用

兄弟,我解决了,我的那个数组是[timestamp,timestamp],hibernate查出来的结果,我把date换成sql.date而不是tuil。date或timestamp,就不会序列化成毫秒了
1 楼 唯快不破 2010-07-18  
兄弟,当我序列化一java数组成json串时,如[Date,Date]。你提供的方法都不起作用

相关推荐

    json转换工具jackson

    `ObjectMapper` 可以通过设置配置选项来优化性能和行为,如关闭默认的类型信息写入、启用/禁用特定特性、设置日期格式等。 6. **流式API** 对于大量数据处理,Jackson 提供了基于流的API(`JsonParser` 和 `...

    Jackson 框架,轻易转换JSON(转)

    例如,在`JacksonTest.java`中,你可以创建一个`Car`对象,然后使用`ObjectMapper.writeValueAsString()`方法将其转换为JSON格式。 ```java Car car = new Car("Toyota", "Camry", 2020); ObjectMapper mapper = ...

    Json 数据格式化 jackson

    Jackson是Java中最流行的JSON处理库之一,由FasterXML团队开发,提供了高效且灵活的方式来序列化和反序列化Java对象为JSON格式。 Jackson库主要由三个核心模块组成,这与提供的压缩包文件中的jar文件对应: 1. **...

    Jackson 框架,轻易转换JSON

    Jackson框架的主要目标是简化JSON与Java对象之间的交互,使得开发者能够轻松地在Java应用中处理JSON格式的数据。 在Jackson中,主要有以下核心组件: 1. **JsonParser**:用于读取JSON输入流,提供了逐字段解析...

    处理JSON日期转换

    `setDataFormat2JAVA()`方法未给出具体实现,但根据上下文,我们可以推断这应该是设置JSON日期解析格式为Java友好的日期格式,例如`yyyy-MM-dd HH:mm:ss`,确保JSON中的日期能正确转换为Java的`Date`或`Calendar`...

    使用jackson完成json与java对象的互相转换实例

    Jackson是Java领域最流行的JSON处理库之一,它提供了高效且灵活的API来实现JSON与Java对象之间的相互转换。本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,...

    Jackson 框架 json 到 复杂 list 的转换

    这篇博客"Jackson 框架 json 到 复杂 list 的转换"可能深入探讨了如何使用Jackson处理包含复杂数据结构的JSON列表。 在JSON到Java对象的转换中,Jackson允许我们将JSON字符串解析成Java对象,包括列表(List)和映射...

    使用jackson完成json与Java对象互转

    Jackson库是Java领域中处理JSON的利器,它提供了高效且灵活的API来实现JSON与Java对象之间的转换。本文将详细介绍如何使用Jackson库进行JSON与Java对象的互转。 首先,我们需要引入Jackson库的依赖。对于Maven项目...

    Jackson 配置json解析器

    - **配置ObjectMapper**: 可以通过`ObjectMapper`的配置方法来定制序列化和反序列化的行为,例如设置日期格式、启用/禁用特定特性(如允许非标准JSON结构)等。 - **注册模块**: 如果需要处理特殊类型的对象(如JDBC...

    spring使用jackson实现json

    在Spring中,我们通常会使用`Jackson.databind`模块,因为它提供了`ObjectMapper`类,可以方便地将Java对象转换为JSON字符串,反之亦然。为了集成Jackson,首先需要在项目中引入对应的依赖。对于Maven项目,可以在...

    利用jackson包进行json字符串与pojo类之间的转换源代码

    例如,要设置日期格式: ```java mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); ``` 4. **注解驱动的映射** Jackson的`@Json`系列注解如`@JsonProperty`、`@JsonIgnore`、`@...

    extjs日期显示(如何转换日期格式)

    在 extjs 中,可以使用 Jackson 依赖项来将后台传递来的日期格式数据转换为 JSON 字符串。Jackson 依赖项提供了多种日期格式转换的方法,例如、@JsonFormat 注解可以用来指定日期格式。 例如,可以使用以下代码来将...

    《Jackson 框架,轻易转换JSON》学习笔记

    本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...

    Jackson JSON jar包

    Jackson JSON 是一个广泛使用的Java库,它为处理JSON数据提供了高效且灵活的工具。这个库由三个主要组件组成,这正是你压缩包中包含的三个jar文件:`jackson-databind-2.4.0.jar`、`jackson-core-2.4.0.jar` 和 `...

    jackson操作json和javabean示例

    Jackson是Java领域中广泛使用的JSON处理库,它提供了多种方式来序列化和反序列化Java对象到JSON格式,以及从JSON数据还原Java对象。在这个名为"jackson操作json和javabean示例"的项目中,我们将深入探讨Jackson库的...

    Java四大json库gson+fastjson+jackson+json-lib

    在选择使用哪个JSON库时,开发者通常会考虑性能、易用性、功能丰富度以及对特定需求的支持。例如,如果追求高性能和简洁API,Fastjson可能是一个好选择;若需处理复杂的数据结构和自定义序列化规则,Jackson则更合适...

    jackson框架解析json

    在处理复杂JSON结构时,Jackson还提供了许多高级特性,如默认值、自定义序列化和反序列化逻辑、日期格式化等。`@JsonFormat`注解可以用来指定日期格式,`@JsonCreator`和`@JsonPOJOBuilder`可以实现更复杂的构造函数...

    SSM框架json使用jackson

    3. **配置优化**:在Spring的配置文件中,我们可以对Jackson进行定制,比如设置日期格式,忽略空值,启用或禁用特定的特性等。 4. **处理复杂类型**:Jackson支持处理包括集合、Map、自定义类型在内的各种复杂数据...

    @JsonFormat的使用jackson-annotations

    此外,`@JsonFormat`还支持时区设置,例如`timezone = "Asia/Shanghai"`,这将在序列化和反序列化时使用指定时区。 除了日期时间,`@JsonFormat`还可以用于控制数字的输出格式。例如,你可以设定小数点后保留的位数...

    使用Jackson在Java中处理JSON

    - **日期格式化**:`@JsonFormat`注解可定制日期和时间的序列化格式。 - **自定义序列化和反序列化逻辑**:通过实现`JsonSerializer`和`JsonDeserializer`接口,可以自定义特定类型的数据处理。 在你的文件列表中...

Global site tag (gtag.js) - Google Analytics