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

嘉祥县建设局网站简历模板免费网站

嘉祥县建设局网站,简历模板免费网站,重庆h5建站,备案查询seo查询背景 项目中使用WRITE_DATES_AS_TIMESTAMPS: true转换日期格式为时间戳未生效。如下#xff1a; spring:jackson:time-zone: Asia/Shanghaiserialization:WRITE_DATES_AS_TIMESTAMPS: true尝试是否关于时间的注解是否会生效#xff0c;使用JsonForma和JsonFiled均失效。 常…背景 项目中使用WRITE_DATES_AS_TIMESTAMPS: true转换日期格式为时间戳未生效。如下 spring:jackson:time-zone: Asia/Shanghaiserialization:WRITE_DATES_AS_TIMESTAMPS: true尝试是否关于时间的注解是否会生效使用JsonForma和JsonFiled均失效。 常见失效原因及解决方法 JsonFormat是用于指定Java对象序列化为JSON字符串时的格式化方式的注解。如果JsonFormat失效可能是以下原因 未正确导入Jackson库注解位置不正确注解参数设置错误 解决方法 确认是否正确导入了Jackson库可以在pom.xml文件中添加以下依赖 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.12.3/version /dependency2、确认注解位置是否正确例如 public class User {JsonFormat(pattern yyyy-MM-dd)private Date birthday;// ... }3、确认注解参数是否正确设置例如 JsonFormat(shape JsonFormat.Shape.STRING, pattern yyyy-MM-ddTHH:mm:ss.SSSZ) public Date getCreatedDate() {return createdDate; }以上是常见的解决方法如果还有问题可以提供更具体的错误信息进行排查。 本次问题解决 失效原因 因为项目中使用了Gson替换Jackson。 代码如下 import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import springfox.documentation.spring.web.json.Json;import java.lang.reflect.Type;public class JsonToGson implements JsonSerializerJson {Overridepublic JsonElement serialize(Json json, Type type, JsonSerializationContext context) {return JsonParser.parseString(json.value());} }Configuration public class SwaggerWebConfiguration implements WebMvcConfigurer {Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/swagger-ui/**).addResourceLocations(classpath:/META-INF/resources/webjars/springfox-swagger-ui/);}Overridepublic void configureMessageConverters(ListHttpMessageConverter? converters) {converters.removeIf(httpMessageConverter - httpMessageConverter instanceof MappingJackson2HttpMessageConverter);converters.add(gsonHttpMessageConverters());}Beanpublic GsonHttpMessageConverter gsonHttpMessageConverters() {Gson gson new GsonBuilder().registerTypeAdapter(Json.class, new SpringfoxJsonToGsonAdapter()).create();GsonHttpMessageConverter gsonConverter new GsonHttpMessageConverter(gson);return gsonConverter;} }解决方案一去掉Gson转换即可。 解决方案二重新添加MappingJackson2HttpMessageConverter的bean Autowired(required false) private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter;Override public void extendMessageConverters(ListHttpMessageConverter? converters) {converters.removeIf(converter - converter instanceof MappingJackson2HttpMessageConverter);if (Objects.isNull(mappingJackson2HttpMessageConverter)) {converters.add(0, new MappingJackson2HttpMessageConverter());} else {converters.add(0, mappingJackson2HttpMessageConverter);}}或 Autowired(required false) private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter;Override public void configureMessageConverters(ListHttpMessageConverter? converters) {converters.removeIf(converter - converter instanceof MappingJackson2HttpMessageConverter);if (Objects.isNull(mappingJackson2HttpMessageConverter)) {converters.add(0, new MappingJackson2HttpMessageConverter());} else {converters.add(0, mappingJackson2HttpMessageConverter);} }解析 Jackson一直是springframework默认的json库从4.1开始springframework支持通过配置GsonHttpMessageConverter的方式使用Gson。 在Spring MVC中一旦请求退出Controller它将寻找一个视图来呈现。当指定了RequestBody或RestController时我们会告诉Spring跳过这一步将java对象通过model写入响应结果。Spring通过HttpMessageConverter来执行Java对象向其它类型通常是Json的转换Spring默认使用的是 MappingJackson2HttpMessageConverter所以如果希望使用Gson来执行这种转换可用使用GsonHttpMessageConverter替换Jackson。 小拓展 在Spring Boot提供了与三个JSON映射库的集成Gson、默认库 Jackson 、JSON-B JsonFormat与JSONField简介 JsonFormat JsonFormat是Java中的一个Jackson注解用于指定某个字段或属性或整个类的JSON序列化或反序列化格式。它允许在将数据类型转换为或从JSON格式转换时自定义日期、数字、布尔值等数据类型的格式。 例如如果您有一个Java类其中包含一个Date字段您希望以特定格式将其序列化为JSON您可以使用JsonFormat注解来指定该格式 示例如下Jackson在序列化或反序列化myDate字段时使用“yyyy-MM-dd”格式。 public class MyClass {JsonFormat(patternyyyy-MM-dd)private Date myDate;// ... }JSONField JSONField是阿里巴巴的fastjson库中的一个注解用于指定Java对象属性在序列化为JSON字符串时的名称、顺序、格式等信息。例如可以使用JSONField(name“username”)指定Java对象属性在序列化为JSON字符串时使用username作为属性名。 区别 JsonFormat和JSONField都是用于控制Java对象属性在序列化为JSON字符串时的格式但是它们有一些不同之处。 JsonFormat是Jackson库中的一个注解用于指定Java对象属性在序列化为JSON字符串时的日期、时间、数字等格式。例如可以使用JsonFormat(pattern“yyyy-MM-dd HH:mm:ss”)指定Java对象属性在序列化为JSON字符串时使用指定的日期时间格式。 JSONField是阿里巴巴的fastjson库中的一个注解用于指定Java对象属性在序列化为JSON字符串时的名称、顺序、格式等信息。例如可以使用JSONField(name“username”)指定Java对象属性在序列化为JSON字符串时使用username作为属性名。 因此虽然JsonFormat和JSONField都可以用于控制Java对象属性在序列化为JSON字符串时的格式但是它们的作用范围和使用方式略有不同。 jackson自定义日期注解 依赖HttpMessageConverter默认实现如下 jacksonMappingJackson2HttpMessageConverter; gsonGsonHttpMessageConverter; fastjson FastJsonHttpMessageConverter 1、自定义转换类 public class DateToJsonSerializer extends JsonSerializerDate implements ContextualSerializer {private DateFormat df new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);public DateToJsonSerializer() {}Overridepublic void serialize(Date arg0, JsonGenerator arg1, SerializerProvider arg2) throws IOException {if (null ! arg0) {arg1.writeString(this.df.format(arg0));}}Overridepublic JsonSerializer? createContextual(SerializerProvider prov, BeanProperty property) {AnnotationMap annotated property.getMember().getAllAnnotations();JsonFormat jsonFormat annotated.get(JsonFormat.class);if (jsonFormat ! null jsonFormat.pattern() ! null){df new SimpleDateFormat(jsonFormat.pattern());}return this;} }2、使用 public class MyClass {JsonSerialize(using DateToJsonSerializer .class)private Date myDate;// ... }翩若惊鸿婉若游龙。
http://www.ho-use.cn/article/10818090.html

相关文章:

  • 亚马逊品牌备案的网站怎么做宁波网站制作哪家强
  • 购买网站建设平台wordpress的安装步骤
  • 网站备案一般由谁来做wordpress文章放视频
  • 自己做的网站百度收索不到急求聊城网站建设
  • 网页 网站 区别网站公司技术交接
  • 如何优化网站结构音箱厂家东莞网站建设
  • 快速提高网站权重可以入侵的网站
  • 做合约交易哪个网站好加强网站及微信平台建设
  • 网站开发技术方案与设施wordpress出选择题
  • 推荐网站建设服务商wordpress会员内容
  • 上海平台网站建设费用邓海舟网站建设教程
  • 建设网站有哪些哈尔滨网站建设方案服务
  • 宁波在线制作网站网站怎么做流量
  • 微页制作网站模板下载wordpress获取分类的文章列表
  • 深圳宝安网站设计公司wordpress文章发布不了
  • 网站建设电销重庆电视台新闻频道
  • 知名网站建设公司排名淄博张店网站建设
  • 烟台城乡建设学校网站wordpress优酷视频插件下载
  • 免费隐私网站推广app用ul做的网站为何浮动不上去
  • 爱站云网站建设heikw中山网站建设工作
  • 营销型网站用什么模版合适网站代码需要注意什么东西
  • 织梦网站中的对话框怎摸做asp网站开发国内外现状
  • 国外创意摄影网站邢台市做网站
  • 怎么在jsp网站做验证码福建建设中心网站
  • 北京网站优化合作WordPress电影资源分享下载站
  • 徐州建站服务网站建设属于哪类工作
  • 如何看网站有没有备案网站安全防黑联盟
  • 做响应式网站设计师需要做什么丰顺最新新闻今天
  • 视频网站开发公司游戏开发引擎
  • 阿里云网站备案多少天wordpress页面相册