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

需要做网站的公司网站的网络推广

需要做网站的公司,网站的网络推广,山东泰安疫情,wordpress区块 宽度一、为什么需要处理空值字段?在实际开发中,我们经常遇到这样的场景:前端需要明确区分字段是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://www.dtcms.com/wzjs/68529.html

相关文章:

  • 建设厅注册中心网站首页郑州seo优化外包顾问
  • 什么网站可以申请做汉语老师徐州网站关键词排名
  • 兰州做网站哪家好网络黄页推广大全
  • 南通医院网站建设方案加强服务保障 满足群众急需需求
  • 长沙网站推广 下拉通推广做了5天游戏推广被抓了
  • 毕业答辩ppt模板免费下载网站西安网络科技有限公司
  • 江苏网站建设代理商厦门人才网唯一官方网站登录入口
  • 深圳模板网站建设哪家好软文推广的优点
  • 太原制作网站网址收录平台
  • 怎么做网站免网店推广分为哪几种类型
  • 一个主机放几个网站衡阳网站优化公司
  • php做网站真的有前途吗凡科建站怎么用
  • 定制开发电商网站建设多少钱郑州模板网站建设
  • 做网站给文件不侵权企业网站的作用有哪些
  • 郑州网站关键词优化外包浙江网络推广公司
  • 汽车网站建设费用广西网站建设制作
  • 营销型网站模板免费下载什么都不懂能去干运营吗
  • 泉州网站建设选择讯呢2023百度秒收录技术
  • wordpress 分类目录代码西安百度关键词优化排名
  • 网站建设网络公司网站策划
  • 龙岗网站建设设计服务东莞网站推广哪里找
  • 手机网站开发 教程和生活app下载安装最新版
  • 网站开发参考文献2015年后关键词文案生成器
  • 教育局两学一做网站seo排名培训公司
  • 公司如何申请一个网站网址百度指数下载
  • 母婴网站模板dede爱站网关键词查询工具
  • 纪委网站建设的建议网络营销工具
  • 铭坐网站建设百度开户联系方式
  • 做面膜的网站网站制作公司排名
  • 博彩网站自己做免费广告制作软件