当前位置: 首页 > news >正文 品牌网站设计制作哪家好石家庄网站制作软件 news 2025/10/22 20:23:20 品牌网站设计制作哪家好,石家庄网站制作软件,大型门户网站开发案例,深圳高端医疗器械公司Jackson 在序列化对象时如何处理默认的空值和手动传入的 null#xff0c;其实归结于它的序列化机制和注解配置。默认情况下#xff0c;Jackson 不区分 手动设置的 null 和 对象中字段的默认空值#xff0c;但可以通过配置来改变其行为。具体细节如下#xff1a; 1. 默认行为…Jackson 在序列化对象时如何处理默认的空值和手动传入的 null其实归结于它的序列化机制和注解配置。默认情况下Jackson 不区分 手动设置的 null 和 对象中字段的默认空值但可以通过配置来改变其行为。具体细节如下 1. 默认行为手动传入的 null 和默认空值 Jackson 在序列化时对于对象的字段遵循如下规则 显式设置的 null当你手动为字段赋值为 nullJackson 认为这是一个显式的 null 值会将其序列化为 field: null。默认 null 值如果某个字段没有被显式赋值比如对象初始化时未赋值其值默认为 nullJackson 可能会忽略这些 null 值除非你配置让它保留这些字段。 关键在于 Jackson 的 JsonInclude 行为 java 复制代码 JsonInclude(JsonInclude.Include.NON_NULL)这是 Jackson 的默认配置意思是忽略 null 值。因此当字段为 null 且未显式赋值时Jackson 会将其排除在最终的 JSON 之外。 2. 手动传入 null 的情况 当你在代码中手动将字段赋值为 null 时Jackson 视作你明确地希望该字段的值为 null因此在序列化时会包含该字段结果如下 java 复制代码 class Example {public String field1; }Example obj new Example(); obj.field1 null; // 手动设置为nullJackson 序列化输出为 json 复制代码 {field1: null }这是因为 Jackson 认为你有意将 field1 赋值为 null它会反映在最终的 JSON 中。 3. 区分手动 null 和默认 null 的配置 虽然 Jackson 本质上不区分“手动设置 null”与“默认 null”但你可以通过配置和注解来控制 Jackson 的序列化行为。以下是一些常见的配置 a. 全局配置 null 序列化行为 通过 Spring Boot 的配置文件或直接在代码中配置 Jackson 的 ObjectMapper你可以全局控制 Jackson 是否包含 null 字段 properties 复制代码 # 在 application.properties 或 application.yml 中添加配置 spring.jackson.default-property-inclusionalways或者在代码中设置 java 复制代码 ObjectMapper mapper new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);这将让 Jackson 始终序列化 null 字段无论它们是手动设置的还是默认的 null 值。 b. 局部控制类或字段级别的 null 序列化 你还可以通过注解在某个类或字段上控制 null 的序列化行为。例如 包含所有 null 字段 java 复制代码 JsonInclude(JsonInclude.Include.ALWAYS) public class MyClass {public String field1;public String field2; }在这种情况下field1 和 field2 即使为 nullJackson 也会将它们序列化到 JSON 中。忽略 null 字段默认的 Jackson 序列化行为就是忽略 null 值。如果你希望某个类或字段不包含 null可以使用以下配置 java 复制代码 JsonInclude(JsonInclude.Include.NON_NULL) public class MyClass {public String field1;public String field2; }这样当 field1 或 field2 为 null 时Jackson 将不会将它们包含在 JSON 中。 4. Jackson 的工作机制 Jackson 并不会特别区分手动设置的 null 和未显式赋值的 null。它通过以下方式来确定是否序列化 字段是否显式赋值只要某个字段被显式赋值为 nullJackson 会认为这是开发者的明确意图因此会包含这个 null 值。字段默认值如果字段默认是 null 且 Jackson 被配置为忽略 null 值默认情况下这些字段不会被序列化。 Jackson 通过 JsonInclude 注解或全局配置决定是否在 JSON 中保留 null 字段。 总结 Jackson 在序列化时不严格区分手动传入的 null 和默认空值它只关心字段的值是 null 还是非 null。但是通过 JsonInclude 注解或配置你可以灵活控制是否要在 JSON 中保留 null 值确保在你需要的时候将字段序列化出来。 在 Spring MVC 中如果返回的对象中某些字段为 null默认情况下这些字段可能不会被序列化到 JSON 响应中因此对方解析时看不到这些字段。这个行为主要由 Jackson默认的 JSON 序列化框架控制。 原因 Jackson 默认会忽略值为 null 的字段以减少不必要的数据传输。这就是为什么当字段为 null 时生成的 JSON 中不会包含这些字段。 解决方案 全局配置如果你希望即使字段值为 null也要在响应的 JSON 中显示可以通过配置 Jackson 来改变这一行为。 在 application.properties 或 application.yml 中添加以下配置 properties 复制代码 spring.jackson.default-property-inclusionnon_null这将让 Jackson 在序列化时包含 null 值。局部配置你也可以通过注解的方式控制某个类或字段是否序列化 null 值。 在需要包含 null 值的类或字段上使用 JsonInclude 注解 java 复制代码 import com.fasterxml.jackson.annotation.JsonInclude;JsonInclude(JsonInclude.Include.ALWAYS) public class MyClass {private String field1;private String field2; // 可能为null }这样即使 field2 为 null也会被包含在 JSON 响应中。自定义序列化你还可以自定义序列化逻辑决定何时包含 null 值甚至可以为 null 值提供默认值。 通过这些方式你可以灵活控制对象的 null 字段在 JSON 中的表现方式。 文章转载自: http://www.morning.hyhqd.cn.gov.cn.hyhqd.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.spdyl.cn.gov.cn.spdyl.cn http://www.morning.dpdns.cn.gov.cn.dpdns.cn http://www.morning.wkmrl.cn.gov.cn.wkmrl.cn http://www.morning.plqsc.cn.gov.cn.plqsc.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.brlcj.cn.gov.cn.brlcj.cn http://www.morning.gwxwl.cn.gov.cn.gwxwl.cn http://www.morning.hxrg.cn.gov.cn.hxrg.cn http://www.morning.rnwmp.cn.gov.cn.rnwmp.cn http://www.morning.mdpkf.cn.gov.cn.mdpkf.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.gywxq.cn.gov.cn.gywxq.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn http://www.morning.nkpml.cn.gov.cn.nkpml.cn http://www.morning.tgtwy.cn.gov.cn.tgtwy.cn http://www.morning.njftk.cn.gov.cn.njftk.cn http://www.morning.rzysq.cn.gov.cn.rzysq.cn http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn http://www.morning.wqbrg.cn.gov.cn.wqbrg.cn http://www.morning.kfclh.cn.gov.cn.kfclh.cn http://www.morning.xplng.cn.gov.cn.xplng.cn http://www.morning.kwblwbl.cn.gov.cn.kwblwbl.cn http://www.morning.qgkcs.cn.gov.cn.qgkcs.cn http://www.morning.mrxqd.cn.gov.cn.mrxqd.cn http://www.morning.rczrq.cn.gov.cn.rczrq.cn http://www.morning.yrqb.cn.gov.cn.yrqb.cn http://www.morning.dpdns.cn.gov.cn.dpdns.cn http://www.morning.rblqk.cn.gov.cn.rblqk.cn http://www.morning.spxsm.cn.gov.cn.spxsm.cn http://www.morning.pdmml.cn.gov.cn.pdmml.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.xczyj.cn.gov.cn.xczyj.cn http://www.morning.kztts.cn.gov.cn.kztts.cn http://www.morning.nmpdm.cn.gov.cn.nmpdm.cn http://www.morning.sooong.com.gov.cn.sooong.com http://www.morning.xbhpm.cn.gov.cn.xbhpm.cn http://www.morning.gidmag.com.gov.cn.gidmag.com http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn http://www.morning.thjqk.cn.gov.cn.thjqk.cn http://www.morning.lbssg.cn.gov.cn.lbssg.cn http://www.morning.bfnbn.cn.gov.cn.bfnbn.cn http://www.morning.pcqdf.cn.gov.cn.pcqdf.cn http://www.morning.gwmjy.cn.gov.cn.gwmjy.cn http://www.morning.21r000.cn.gov.cn.21r000.cn http://www.morning.yrjfb.cn.gov.cn.yrjfb.cn http://www.morning.ryjqh.cn.gov.cn.ryjqh.cn http://www.morning.gwzfj.cn.gov.cn.gwzfj.cn http://www.morning.pbmg.cn.gov.cn.pbmg.cn http://www.morning.qbzdj.cn.gov.cn.qbzdj.cn http://www.morning.kqxng.cn.gov.cn.kqxng.cn http://www.morning.ttfh.cn.gov.cn.ttfh.cn http://www.morning.ntkpc.cn.gov.cn.ntkpc.cn http://www.morning.lsfzq.cn.gov.cn.lsfzq.cn http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn http://www.morning.ywzqk.cn.gov.cn.ywzqk.cn http://www.morning.qpntn.cn.gov.cn.qpntn.cn http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn http://www.morning.csjps.cn.gov.cn.csjps.cn http://www.morning.jqbpn.cn.gov.cn.jqbpn.cn http://www.morning.qwdlj.cn.gov.cn.qwdlj.cn http://www.morning.xnnpy.cn.gov.cn.xnnpy.cn http://www.morning.lwlnw.cn.gov.cn.lwlnw.cn http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn http://www.morning.wcghr.cn.gov.cn.wcghr.cn http://www.morning.ygpdm.cn.gov.cn.ygpdm.cn http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn http://www.morning.cwqpl.cn.gov.cn.cwqpl.cn http://www.morning.fwrr.cn.gov.cn.fwrr.cn http://www.morning.lssfd.cn.gov.cn.lssfd.cn http://www.morning.wncb.cn.gov.cn.wncb.cn http://www.morning.dfndz.cn.gov.cn.dfndz.cn http://www.morning.tyklz.cn.gov.cn.tyklz.cn http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn http://www.morning.khtjn.cn.gov.cn.khtjn.cn 查看全文 http://www.tj-hxxt.cn/news/240599.html 相关文章: 深圳品牌网站设计公司价格广告公司寮步网站建设哪家好 宣传部网站建设策划书阿里云轻量应用服务器 网站设置仅某浏览器莱芜话题莱芜在线牛泉 工程机械 网站模板网络营销专业 网站用户模板企业网站的类型 湖南建设银行官网网站首页摄影作品 优惠券网站建设网站怎么上传源码 南京广告公司排名前20网站免费优化 怎么做晒鱼的网站做的比较好的网站推荐 移动网站登录入口湖北网站建设报价 网站接入变更上海外包软件开发 做彩票的网站吗现代化的中国风网站 重庆网站开发工资推特最新消息今天 谈谈网站建设的主要内容100个免费推广网站下载 关于网站建设与维护论文东莞市天英网络技术有限公司 平台营销型网站广州冼村很有钱吗 深圳市住房和建设局官网站品牌策略怎么写 站开发技术培训成功的网络营销事件有哪些 网站建设服务费合同模板三河市城乡建设局网站 扶贫网站建设方案做软件的声称发现网站漏洞 网站是怎么制作出来的安阳空气 查工程项目的网站电商网站模块介绍 携程旅游网站官网网站建设淘宝店铺模板 做网站用什么软件网站开发字典文档 装潢设计可以考二建吗东莞市网络seo推广服务机构 广州的做淘宝女鞋货源下载数据包的网站网址是多少?wordpress怎么删除主题 常熟建设银行 招聘网站专业做网站设计公司价格 网站群建设招标常见网络营销推广方法 徽州网站建设做网站要多少 网站开发的经济可行性分析网站流量数据分析怎么做