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

网站优化包括对什么优化绘图软件免费版

网站优化包括对什么优化,绘图软件免费版,网站建立的流程,医疗器械网站前置审批一、为什么需要处理空值字段?在实际开发中,我们经常遇到这样的场景:前端需要明确区分字段是null、空字符串还是未提供第三方接口要求严格的数据结构,即使字段为空也必须存在日志记录需要完整的数据结构以便问题排查默认情况下&…

一、为什么需要处理空值字段?

在实际开发中,我们经常遇到这样的场景:

  • 前端需要明确区分字段是null、空字符串还是未提供

  • 第三方接口要求严格的数据结构,即使字段为空也必须存在

  • 日志记录需要完整的数据结构以便问题排查

默认情况下,Fastjson会忽略所有值为null的字段,这可能导致:

  1. 前端收到不完整的数据结构

  2. 接口文档与实际响应不一致

  3. 调试时难以区分字段缺失和字段为空

二.解决方案

1.创建消息转化器(适用于接口返回值序列化)

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.util.List;@Configuration
public class FastJsonConfiguration implements WebMvcConfigurer {@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {// 1. 创建FastJson消息转换器FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();// 2. 创建FastJson配置FastJsonConfig fastJsonConfig = new FastJsonConfig();// 3. 设置序列化特征:输出空字段fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue, // 关键配置:输出值为null的字段SerializerFeature.WriteNullListAsEmpty, // 空List转为[]SerializerFeature.WriteNullStringAsEmpty, // 空String转为""SerializerFeature.WriteDateUseDateFormat, // 日期格式化SerializerFeature.DisableCircularReferenceDetect // 禁用循环引用检测);// 4. 设置日期格式fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");// 5. 将配置设置给转换器fastJsonConverter.setFastJsonConfig(fastJsonConfig);// 6. 将FastJson转换器添加到converters中,并置于首位converters.add(0, fastJsonConverter);}
}

2.字段注解(适用于指定字段)

@JSONField(serialzeFeatures = SerializerFeature.WriteMapNullValue)
public class UserDTO {@JSONField(serialzeFeatures = SerializerFeature.WriteMapNullValue)private String name;@JSONField(serialzeFeatures = SerializerFeature.WriteMapNullValue)private Integer age;@JSONField(serialzeFeatures = SerializerFeature.WriteNullListAsEmpty)private List<String> tags;
}

3.全局配置(适用于项目全局)

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;import javax.annotation.PostConstruct;/*** FastJSON全局配置* 配置全局序列化特性,包括空字段序列化* 这个配置会影响所有使用JSON.toJSONString()的地方*/
@Configuration
public class FastJsonGlobalConfig {private static final Logger logger = LoggerFactory.getLogger(FastJsonGlobalConfig.class);@PostConstructpublic void init() {logger.info("开始配置FastJSON全局序列化特性...");// 使用位运算组合多个特性int features = JSON.DEFAULT_GENERATE_FEATURE;features |= SerializerFeature.WriteMapNullValue.getMask();features |= SerializerFeature.WriteNullListAsEmpty.getMask();features |= SerializerFeature.DisableCircularReferenceDetect.getMask();JSON.DEFAULT_GENERATE_FEATURE = features;logger.info("FastJSON全局序列化特性配置完成");logger.info("启用的特性: {}", SerializerFeature.config(JSON.DEFAULT_GENERATE_FEATURE, new SerializerFeature[0]));}
}


文章转载自:

http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://00000000.gqtqj.cn
http://www.dtcms.com/wzjs/619624.html

相关文章:

  • 5昌平区网站建设建设一个网站思路
  • 景区网站建设费用网店如何运营和推广
  • app网站欣赏自己做网站上市
  • 易企秀网站开发技术做科技汽车的视频网站有哪些内容
  • 沧州网站建设公司电话外贸网站域名
  • 电子商务网站建设的一般流程是佛山企业网站设计制作
  • 个人做网站怎么备案网络优化的内容包括哪些
  • 网站建设公司的政策风险做网站前段可以考什么证书
  • 互动网站设计与制作做五金标准件网站
  • 北京国都建设集团网站公司招聘要求
  • 桃子网站logo找不同 网站开发
  • 青岛建设教育网站做电影网站怎么降低内存
  • 苏州网站建设布局seo流量是什么意思
  • 兰州模板型网站建设临沂百度网站推广
  • 有哪些好的网站建设保定网站seo费用
  • 现在建个企业网站要多少钱post wordpress
  • 读书网站怎么做桂林到阳朔怎么走最方便
  • 超值的网站建设梅州企业网站建设公司
  • 做单页面网站山西做网站推广
  • wordpress游戏网站主题做招牌的广告公司
  • 合肥快速建站在线咨询佛山企业网站推广
  • 网站建设经费预算表信息流优化师是什么
  • 网站线框图用什么做百讯科技网站建设
  • 奇缦科技珠海网站建设优化购物网站排行榜
  • 大网站的建设重点wordpress 模版 婚礼
  • 安卓端网站开发ide如何做网站来做淘宝客
  • 网站建设的技术有哪些内容seo技术培训山东
  • 无锡网站建设专注千客云网络学校的网站的代码模板下载
  • 苏州网站建设科技中国wordpress用的人少
  • 网站** 教程深圳宝安区必去景点