近日,使用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;
}
好了,记录完毕
分享到:
相关推荐
`ObjectMapper` 可以通过设置配置选项来优化性能和行为,如关闭默认的类型信息写入、启用/禁用特定特性、设置日期格式等。 6. **流式API** 对于大量数据处理,Jackson 提供了基于流的API(`JsonParser` 和 `...
例如,在`JacksonTest.java`中,你可以创建一个`Car`对象,然后使用`ObjectMapper.writeValueAsString()`方法将其转换为JSON格式。 ```java Car car = new Car("Toyota", "Camry", 2020); ObjectMapper mapper = ...
Jackson是Java中最流行的JSON处理库之一,由FasterXML团队开发,提供了高效且灵活的方式来序列化和反序列化Java对象为JSON格式。 Jackson库主要由三个核心模块组成,这与提供的压缩包文件中的jar文件对应: 1. **...
Jackson框架的主要目标是简化JSON与Java对象之间的交互,使得开发者能够轻松地在Java应用中处理JSON格式的数据。 在Jackson中,主要有以下核心组件: 1. **JsonParser**:用于读取JSON输入流,提供了逐字段解析...
`setDataFormat2JAVA()`方法未给出具体实现,但根据上下文,我们可以推断这应该是设置JSON日期解析格式为Java友好的日期格式,例如`yyyy-MM-dd HH:mm:ss`,确保JSON中的日期能正确转换为Java的`Date`或`Calendar`...
Jackson是Java领域最流行的JSON处理库之一,它提供了高效且灵活的API来实现JSON与Java对象之间的相互转换。本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,...
这篇博客"Jackson 框架 json 到 复杂 list 的转换"可能深入探讨了如何使用Jackson处理包含复杂数据结构的JSON列表。 在JSON到Java对象的转换中,Jackson允许我们将JSON字符串解析成Java对象,包括列表(List)和映射...
Jackson库是Java领域中处理JSON的利器,它提供了高效且灵活的API来实现JSON与Java对象之间的转换。本文将详细介绍如何使用Jackson库进行JSON与Java对象的互转。 首先,我们需要引入Jackson库的依赖。对于Maven项目...
- **配置ObjectMapper**: 可以通过`ObjectMapper`的配置方法来定制序列化和反序列化的行为,例如设置日期格式、启用/禁用特定特性(如允许非标准JSON结构)等。 - **注册模块**: 如果需要处理特殊类型的对象(如JDBC...
在Spring中,我们通常会使用`Jackson.databind`模块,因为它提供了`ObjectMapper`类,可以方便地将Java对象转换为JSON字符串,反之亦然。为了集成Jackson,首先需要在项目中引入对应的依赖。对于Maven项目,可以在...
例如,要设置日期格式: ```java mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); ``` 4. **注解驱动的映射** Jackson的`@Json`系列注解如`@JsonProperty`、`@JsonIgnore`、`@...
在 extjs 中,可以使用 Jackson 依赖项来将后台传递来的日期格式数据转换为 JSON 字符串。Jackson 依赖项提供了多种日期格式转换的方法,例如、@JsonFormat 注解可以用来指定日期格式。 例如,可以使用以下代码来将...
本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...
Jackson JSON 是一个广泛使用的Java库,它为处理JSON数据提供了高效且灵活的工具。这个库由三个主要组件组成,这正是你压缩包中包含的三个jar文件:`jackson-databind-2.4.0.jar`、`jackson-core-2.4.0.jar` 和 `...
Jackson是Java领域中广泛使用的JSON处理库,它提供了多种方式来序列化和反序列化Java对象到JSON格式,以及从JSON数据还原Java对象。在这个名为"jackson操作json和javabean示例"的项目中,我们将深入探讨Jackson库的...
在选择使用哪个JSON库时,开发者通常会考虑性能、易用性、功能丰富度以及对特定需求的支持。例如,如果追求高性能和简洁API,Fastjson可能是一个好选择;若需处理复杂的数据结构和自定义序列化规则,Jackson则更合适...
在处理复杂JSON结构时,Jackson还提供了许多高级特性,如默认值、自定义序列化和反序列化逻辑、日期格式化等。`@JsonFormat`注解可以用来指定日期格式,`@JsonCreator`和`@JsonPOJOBuilder`可以实现更复杂的构造函数...
3. **配置优化**:在Spring的配置文件中,我们可以对Jackson进行定制,比如设置日期格式,忽略空值,启用或禁用特定的特性等。 4. **处理复杂类型**:Jackson支持处理包括集合、Map、自定义类型在内的各种复杂数据...
此外,`@JsonFormat`还支持时区设置,例如`timezone = "Asia/Shanghai"`,这将在序列化和反序列化时使用指定时区。 除了日期时间,`@JsonFormat`还可以用于控制数字的输出格式。例如,你可以设定小数点后保留的位数...
- **日期格式化**:`@JsonFormat`注解可定制日期和时间的序列化格式。 - **自定义序列化和反序列化逻辑**:通过实现`JsonSerializer`和`JsonDeserializer`接口,可以自定义特定类型的数据处理。 在你的文件列表中...