使用Jackson时转换JSON时,日期格式设置 您所在的位置:网站首页 不是指定的日期格式 使用Jackson时转换JSON时,日期格式设置

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

2024-07-10 23:34| 来源: 网络整理| 查看: 265

  在使用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 mapper = new ObjectMapper(); // can reuse, share globally DeserializationConfig cfg = mapper.getDeserializationConfig(); //设置JSON时间格式 SimpleDateFormat myDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); cfg.setDateFormat(myDateFormat);

2.annotaion的注释方式:

此方式直接作用在类中,加到实体类的date属性或其get方法上都可以

@JsonIgnoreProperties            此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。      @JsonIgnore            此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。      @JsonFormat           此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")      @JsonSerialize 

/** * @Description:spring返回json,时间转换器 * @author whl * @version 1.0 2014-8-28 下午5:13:30 */ public class JsonDateSerializer extends JsonSerializer { private SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void serialize(Date date, JsonGenerator gen, SerializerProvider provider) throws IOException, JsonProcessingException { String value = dateFormat.format(date); gen.writeString(value); } } //使用方法 public class User{ /**属性上也可以使用 * @JsonSerialize(using=JsonDateSerializer.class) */ private Date date; // 反序列化一个固定格式的Date @JsonDeserialize(using=JsonDateSerializer.class) public void setDate(Date date) { this.date = date; } // 序列化指定格式的double格式 @JsonSerialize(using=JsonDateSerializer.class) public double getDate() { return date; } }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有