`
liyixing1
  • 浏览: 952878 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

json mapper 时间 日期 格式

    博客分类:
  • json
 
阅读更多
单独配置的方法
Jackson格式化日期一般都是这个例子
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);  
        }  
}

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


registerModule的方式注册自定义的module
ObjectMapper mapper = super.createObjectMapper();
		UTCDateDeserializer utcDateDeserializer = new UTCDateDeserializer();
		SimpleModule newModule = new SimpleModule("UTCDateDeserializer", PackageVersion.VERSION);
		newModule.addDeserializer(Date.class, utcDateDeserializer);
		mapper.registerModule(newModule);

import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.xxx.ReflectUtils;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.DateDeserializers.DateDeserializer;

public class UTCDateDeserializer extends DateDeserializer {
	private Logger logger = Logger.getLogger(getClass());
	private static final long	serialVersionUID	= -6218693745160760598L;

	@Override
	protected Date _parseDate(JsonParser jp, DeserializationContext ctxt)
			throws IOException, JsonProcessingException {
		Date _parseDate = null;
		try {
			_parseDate = super._parseDate(jp, ctxt);
		} catch (Exception ex) {
			logger.trace(ex.getMessage(), ex.getCause());
			String dateStr = jp.getText().trim();
			
			DateFormat sourceDf = ctxt.getConfig().getDateFormat();
			
			if (sourceDf != null && sourceDf instanceof SimpleDateFormat) {
				String pattern = (String) ReflectUtils.getFieldValue(sourceDf, "pattern");
				DateTime dt = DateTimeFormat.forPattern(pattern).parseDateTime(dateStr);
				_parseDate = dt.toDate();
			}
		}
		return _parseDate;
	}

}
分享到:
评论

相关推荐

    LitJson.dll

    对于更复杂的JSON处理需求,如日期时间格式的转换,或者对JSON Schema的支持,可能需要选择如Newtonsoft.Json这样的更全面的库。 总的来说,LitJson.dll是一个简单易用且轻量级的JSON处理工具,适用于那些对性能有...

    springmvc学习笔记-返回json的日期格式问题的解决方法

    尤其是日期类型数据,在JSON中默认会被序列化为时间戳(long值),这样的格式对于前端开发者而言并不友好,尤其是当需要自定义日期格式以适应特定地区或业务需求时。 根据提供的文件信息,解决Spring MVC返回JSON的...

    bootstap-talbe日期格式化

    Bootstrap Table 是一个基于 ...整个流程涉及到了 MySQL 的日期存储、Spring MyBatis 的数据处理、前端的 Bootstrap Table 以及日期格式化库的使用。确保每个环节都正确配置和使用,你就能成功地实现日期的格式化显示。

    json显示日期带T问题的解决方法.docx

    这个问题主要源于JSON的标准日期格式,它是按照ISO 8601标准来表示日期和时间的,例如:"2023-04-07T15:30:00.000Z"。这个"T"字符在ISO 8601中用于分隔日期和时间部分。 在描述的问题中,开发者遇到了日期字符串中...

    json处理利器

    使用`LitJson.dll`,你可以通过`JsonMapper.ToJson(object)`方法将一个C#对象转化为JSON格式的字符串。例如,如果你有一个Person类的实例,你可以轻松地将其转换为JSON格式: ```csharp public class Person { ...

    Json Dll 文件 用来读取

    然而,相比于更成熟的库如Newtonsoft.Json(也称Json.NET),`LitJson.dll`的功能可能相对有限,例如在处理复杂JSON结构、日期时间格式或自定义类型时可能会有些力不从心。 总的来说,`Json.dll`(在此处可能是`...

    LitJson JSON库

    - **序列化对象到JSON**:使用`JsonMapper.ToJson(object)`方法,将任何.NET对象转换为JSON格式的字符串。 - **反序列化JSON到对象**:使用`JsonMapper.ToObject(string)`方法,将JSON字符串转换为指定类型的.NET...

    LitJSON解析Json的DLL

    1. 错误处理:虽然`JsonMapper`的`ToObject`方法会自动尝试处理JSON解析错误,但当遇到无法转换的类型或格式错误时,可能会抛出异常。因此,建议在调用这些方法时加入适当的异常处理代码。 2. 数据安全:在处理用户...

    JSON Schema 校验库——json-schema-validator(java版本).rar

    3. **扩展支持**:`json-schema-validator`支持多种JSON Schema扩展,如`format`关键字,用于验证日期、时间、URI等特殊格式。 4. **与其他框架的集成**:库可以方便地与Spring、Jackson、Gson等Java JSON处理框架...

    java对象集合转json格式

    Jackson还支持更复杂的转换,例如自定义序列化和反序列化规则、处理日期时间、处理null值等。同时,它还提供了`readValue()`方法,可以从JSON字符串反序列化回Java对象。 6. **其他JSON库** 如果你不想使用...

    JAVA解析JSON数据

    JSON默认不支持日期和时间类型,但Jackson提供了一些注解,如`@JsonFormat`,可以方便地处理日期和时间。 8. **错误处理** 在解析过程中,如果JSON格式不正确或与预期的Java类型不符,`ObjectMapper`会抛出异常。...

    litjson解析例子

    如果你需要更丰富的功能,如日期时间处理、自定义序列化策略等,可能需要考虑使用其他更成熟的库,如Json.NET。 总的来说,"litjson解析例子"是一个学习如何在.NET环境中轻松处理JSON数据的好起点,尤其是当你关心...

    java操作json实例

    在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人和机器都能容易地读取和编写数据。JSON是独立于语言的,但使用了类似于C家族的语言,包括Java,来解析和生成。在这个实例中...

    使用json依赖大的jar包

    - **日期处理**:Jackson可以通过注册自定义的`Module`或设置`JsonFormat`注解来处理日期和时间类型。 - **自定义序列化和反序列化**:通过实现`JsonSerializer`和`JsonDeserializer`接口,可以对特定类型的序列化和...

    springboot2.0 配置时间格式化不生效问题的解决

    在Spring Boot 2.0中,时间格式化的配置通常是为了使JSON序列化和反序列化过程中日期的展示更加友好。然而,有时候按照官方文档或常见教程配置后,却发现时间格式化并没有生效,这可能是由于一些特定原因导致的。...

    解决SpringMVC 返回Java8 时间JSON数据的格式化问题处理

    默认情况下,Spring MVC使用Jackson库进行JSON转换,而Jackson可能无法直接将Java 8的日期时间对象转换为我们期望的格式。本文将详细介绍两种解决Spring MVC返回Java 8日期时间JSON数据格式化问题的方法。 **解决...

    LitJson C#

    当你需要将C#对象转换为JSON格式时,可以使用`JsonMapper.ToJson()`方法。例如,假设我们有一个Person类: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; }...

    springmvc中json转换的jar

    Jackson库的强大功能不仅限于基本的对象转换,还包括处理日期时间、泛型、枚举、自定义类型等复杂场景,以及支持JSON Schema、流式处理等高级特性。 总结来说,`jackson-core-asl.jar`和`Jackson-mapper-asl.jar`在...

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

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

    LitJson动态链接库和源代码

    4. **数据类型支持**:LitJson支持各种.NET基础类型,如整型、浮点型、字符串、日期时间等,同时也支持自定义类型和集合类型(如List和Dictionary, TValue&gt;)。 5. **性能优化**:由于移动平台的资源限制,LitJson...

Global site tag (gtag.js) - Google Analytics