欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > JSONObject.toJSONString(***) json化后的值中的日期值被转换为时间戳?如何修改?

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

2024/10/24 10:27:34 来源:https://blog.csdn.net/lijie0213/article/details/139597789  浏览:    关键词: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 中的日期格式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com