当前位置: 首页 > news >正文

JSONObject.toJSONString(***) json化后的值中的日期值被转换为时间戳?如何修改?

当处理 JSON 数据时,有时我们需要自定义日期类型的序列化方式,以保留原有的日期时间数据格式而不是将其转换为时间戳。在 Java 中,我们可以利用 Jackson 库来实现这一需求。

首先,我们需要自定义一个 JsonSerializer 类,用于将 Date 类型序列化为指定的日期格式字符串。接着,我们需要注册这个自定义模块,确保日期类型字段被序列化为指定格式的日期字符串。

下面是一个具体的示例代码:

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ObjectMapper;import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;public class DateSerializer extends JsonSerializer<Date> {private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");@Overridepublic void serialize(Date date, JsonGenerator gen, SerializerProvider serializers) throws IOException {gen.writeString(dateFormat.format(date));}
}public class Main {public static void main(String[] args) {ObjectMapper objectMapper = new ObjectMapper();SimpleModule module = new SimpleModule();module.addSerializer(Date.class, new DateSerializer());objectMapper.registerModule(module);// 假设 map 是包含日期类型字段的数据Map<String, Object> map = new HashMap<>();map.put("dateField", new Date());try {String json = objectMapper.writeValueAsString(map);System.out.println(json);} catch (IOException e) {e.printStackTrace();}}
}

通过以上代码,我们成功地将日期字段序列化为 “yyyy-MM-dd HH:mm:ss” 格式的字符串,保留了原有的日期时间数据,而不包含时区信息。你可以根据需要调整 SimpleDateFormat 中的日期格式

相关文章:

  • 源码文章上传无忧,论坛小程序支持
  • 人工智能GPT-4o?
  • 【AI基础】第三步:纯天然保姆喂饭级-安装并运行chatglm2-6b
  • 大型零售企业总部到分公司数据发放,有没有更优化的方案?
  • 知识图谱的应用---新零售
  • 【ARM Cache 及 MMU 系列文章 6 -- Cache 寄存器 CTR_EL0 | CLIDR | CCSIDR | CSSELR 使用详解 1】
  • SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(六)
  • 小心人工智障
  • 【氵】Archlinux+KDE Plasma 6+Wayland 安装nvidia驱动 / 开启HDR
  • 正大国际期货:如何培养个好心态呢?
  • 【HarmonyOS】HUAWEI DevEco Studio 下载地址汇总
  • OBS+nginx+nginx-http-flv-module实现阿里云的推流和拉流
  • 电商比价系统的搭建需要哪些方面着手准备?
  • 手写微前端microApp-数据通信
  • 【Go语言】面向对象编程(二):通过组合实现类的继承和方法重写
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【刷算法】从上往下打印二叉树
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • gf框架之分页模块(五) - 自定义分页
  • java2019面试题北京
  • java8 Stream Pipelines 浅析
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaWeb(学习笔记二)
  • Laravel Telescope:优雅的应用调试工具
  • mysql 5.6 原生Online DDL解析
  • node-glob通配符
  • Python爬虫--- 1.3 BS4库的解析器
  • React-生命周期杂记
  • Redis的resp协议
  • Sass Day-01
  • ubuntu 下nginx安装 并支持https协议
  • 工作手记之html2canvas使用概述
  • 小程序 setData 学问多
  • 与 ConTeXt MkIV 官方文档的接驳
  • 原生 js 实现移动端 Touch 滑动反弹
  • 自动记录MySQL慢查询快照脚本
  • 2017年360最后一道编程题
  • C# - 为值类型重定义相等性
  • 阿里云移动端播放器高级功能介绍
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • ‌JavaScript 数据类型转换
  • (1)svelte 教程:hello world
  • (19)夹钳(用于送货)
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (C++20) consteval立即函数
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (分布式缓存)Redis分片集群
  • (分类)KNN算法- 参数调优
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot教学评价 毕业设计 641310
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (原創) 物件導向與老子思想 (OO)