fastjson 对于 Date 类型的处理

前言

在使用 fastjson 存储 json 对象时,发现其将 date 类型的 value 默认转换成了 long 类型的时间戳。
那么怎么解决这个问题?

代码如下

 private static SerializeConfig mapping = new SerializeConfig();
private static String dateFormat;
static {
    dateFormat = "yyyy-MM-dd HH:mm:ss";
}

@org.junit.Test
public void testJSon() {
    JSONObject json1 = new JSONObject();
    json1.put("date", new Date());
    System.out.println(json1.toJSONString());
    System.out.println(JSONObject.toJSONString(json1));
    System.out.println(toJSON(json1));
}

public static String toJSON(Object jsonText) {
    return JSON.toJSONString(jsonText, SerializerFeature.WriteDateUseDateFormat);
}

/**
 * 自定义时间格式
 * 
 * @param jsonText
 * @return
 */
public static String toJSON(String dateFormat, String jsonText) {
    mapping.put(Date.class, new SimpleDateFormatSerializer(dateFormat));
    return JSON.toJSONString(jsonText, mapping);
}

通过更改 json 的序列化 config,输出结果如下:

{"date":1564497393215}
{"date":1564497393215}
{"date":"2019-07-30 22:36:33"}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值