`
zcw_java
  • 浏览: 303779 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Jackson返回日期格式

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

1.普通的方式:

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

Java代码
objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false); 

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

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

Java代码
objectMapper.getSerializationConfig().setDateFormat(myDateFormat); 

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

myDateFormat对象为java.text.DateFormat,具体使用清查java API2.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);   
        }   
}  

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;   
       } 

StringWriter sw = new StringWriter();   
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);   
JacksonUtil.getInstance().writeValue(gen, jsonlist);   
gen.close();   
String finalInfo = sw.toString();   
System.out.println("finalinfo is:"+finalInfo );  

分享到:
评论

相关推荐

    jackson2.7.1所有Jar包,SSM返回前端Json数据

    4. **无配置文件使用**:由于Spring与Jackson的深度集成,通常不需要在配置文件中显式配置Jackson的相关设置,例如ObjectMapper的行为,除非有特殊需求,如日期格式化、自定义序列化等。 5. **Jackson的其他模块**...

    jackson-2.9.3jar包合集

    Jackson的强大之处在于它的性能、灵活性和丰富的功能,如支持数据类型转换、处理复杂JSON结构、支持日期和时间序列化等。 总结来说,"jackson-2.9.3jar包合集"是一个包含Jackson核心库、注解支持以及可能的数据格式...

    jackson-core-asl-1.9.13+jackson-mapper-asl-1.9.13札包

    除了基本的功能外,Jackson库还有许多高级特性,如类型转换、类型安全的泛型处理、处理日期和时间的模块、以及对XML和CSV的支持等。在实际开发中,根据具体需求,可以结合使用这些特性来优化JSON操作的效率和灵活性...

    jackson的jar包

    在SpringMVC中,Jackson作为默认的HTTP消息转换器,负责将Controller方法返回的对象转换成JSON响应,并将请求中的JSON数据转换为Java对象。通过配置SpringMVC的`MappingJackson2HttpMessageConverter`或`Jackson2...

    jackson-2.8.11.jar

    `ObjectMapper`不仅支持注解驱动的映射,还可以处理复杂的类型转换,如枚举、泛型、日期时间等。此外,`ObjectMapper`还提供了配置选项,以适应不同的序列化需求,比如忽略空值、自定义格式化等。 在实际开发中,这...

    jackson-all-1.9.0.jar,jackson-all-1.9.9.jar,jackson-all-1.9.11.jar

    虽然Jackson 1.9.x系列在当时是一个可靠的解决方案,但随着时间的推移,Jackson已经发展到更高的版本,如2.x系列,提供了更多的功能和性能优化。因此,对于新的项目,建议使用更新的Jackson版本,如2.13.x,以利用...

    jackson-core-2.5.0.jar

    通过自定义`MessageConverter`或者调整Spring的配置,我们可以定制Jackson的行为,比如改变默认的日期格式,或者添加自定义的序列化模块。 在实际开发中,`jackson-core-2.5.0.jar`的使用往往结合`jackson-databind...

    jackson所需所有jar包

    - 使用`@JsonFormat`来控制日期和时间的序列化格式。 - 定制`ObjectMapper`配置,例如设置日期格式,启用或禁用特定的序列化特性。 5. **安全性考虑**: - 为了防止潜在的安全问题,如JSON注入,确保启用`...

    SSM框架json使用jackson

    5. **`@JsonFormat`**:用于格式化日期和时间,可以指定特定的日期时间格式。 在SSM中,Jackson的使用通常涉及到以下场景: 1. **HTTP请求和响应处理**:在SpringMVC中,我们可以配置`JacksonHttpMessageConverter...

    springmvc-jackson-jar包集合

    1. 配置`ObjectMapper`:通过`Jackson2ObjectMapperBuilder`,可以定制化`ObjectMapper`的行为,比如设置日期格式、忽略未知属性等。 2. 使用模块:根据项目需求,可以选择性引入Jackson的特定模块,例如`jackson-...

    jackson2.6 最新jar包

    例如,`@JsonProperty`用于指定哪个字段应该映射到JSON,`@JsonIgnore`用于忽略某个属性,`@JsonFormat`则可以定制日期时间的格式。 7. **性能优化**: Jackson 2.6版本引入了许多性能优化,包括更快的序列化速度...

    jackson-2.9.7jar包

    - 功能全面:Jackson支持更复杂的JSON结构和特性,如嵌套对象、数组、日期时间处理等。 - 注解支持:通过注解可以实现细粒度的控制,无需编写大量额外的代码。 - 扩展性强:Jackson有一个庞大的生态系统,包含了许多...

    spring4 jackson2.5.3.jar 包

    通过配置`Jackson2ObjectMapperBuilder`,我们可以定制JSON序列化和反序列化的规则,如日期格式、字段忽略策略等。 为了在Spring MVC项目中使用Jackson 2.5.3,你需要在项目的类路径下包含对应的jar包,这通常通过...

    MVC框架用到的jackson相关的jar包

    - 使用`@JsonFormat`注解来处理日期和时间的格式。 - 使用`@JsonView`定义视图,根据不同的请求只暴露部分字段。 - 定制`ObjectMapper`实例以全局设置,例如配置日期格式,启用或禁用特定的特性。 **总结** ...

    jackson2.2.3

    使用Jackson库,开发者可以方便地处理服务器返回的JSON数据,将其转化为易于操作的Java对象,同时也能将本地数据结构转化为JSON格式发送给服务器。 在实际开发中,结合这三个模块,开发者可以实现以下功能: - 序列...

    jackson2.8.8.zip

    Jackson 2.x引入了模块化设计,允许添加额外的功能模块,如处理XML的`jackson-dataformat-xml`模块,处理日期时间的`jackson-datatype-jsr310`模块等,这使得Jackson可以处理更广泛的序列化需求。 总结来说,...

    jackson2.7.4jar包

    在实际应用中,可能还需要配置Jackson以满足特定需求,例如日期格式化、自定义序列化器或反序列化器等。这可以通过在Spring配置中注入`ObjectMapper`并设置相关属性来实现。同时,为了提高性能和减少依赖,可以根据...

    springmvc jackson jar 包

    此外,Jackson还提供了许多高级特性,如忽略未设置的属性(`@JsonIgnore`),自定义序列化和反序列化逻辑(`@JsonSerialize`, `@JsonDeserialize`),以及日期格式化(`@JsonFormat`)等。你还可以配置Spring MVC的`...

    Do JSON By Baeldung Jackson

    以上示例中,`birthDate`属性将使用`CustomDateSerializer`进行序列化,确保日期以特定格式输出。 通过上述对Jackson注解的介绍,我们可以看到Jackson提供了一种极其灵活的方式来处理JSON数据。无论是简单的序列化/...

    jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    这样,当Jackson序列化`totalCost`属性时,会调用`BigDecimalSerialize`类中的`serialize`方法,确保返回的JSON数据格式正确。 ### 扩展应用 `@JsonSerialize`注解不仅可以用于BigDecimal,还可以应用于其他类型,...

Global site tag (gtag.js) - Google Analytics