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

FastJSON 默认不会包含值为 null 的字段

FastJSON 默认不会包含值为 null 的字段。这是因为 FastJSON 的 toJSONString() 方法默认会跳过 null 值字段。

FastJSON 的默认行为

FastJSON 的默认序列化行为是不包含值为 null 的字段。只有在明确指定序列化选项(如 SerializerFeature.WriteMapNullValue)时,才会将值为 null 的字段序列化为 "key":null

代码验证

以下是具体的代码示例和输出:

import com.alibaba.fastjson.JSONObject;

//主函数
//@author zhouzhi
public static void main(String[] args)  {
    
        com.alibaba.fastjson.JSONObject obj_ret = new com.alibaba.fastjson.JSONObject();
        obj_ret.put("key1", null);
        obj_ret.put("key2", "value");
        System.out.println(JSON.toJSONString(obj_ret, SerializerFeature.WriteMapNullValue));
        //{"key1":null,"key2":"value"}
        System.out.println(obj_ret.toJSONString());
        // 输出: {"key2":"value"}
    
        
        JSONObject obj_ret2 = new JSONObject();
        obj_ret2.put("key1", null);
        obj_ret2.put("key2", "value");
        String jsonString = JSON.toJSONString(obj_ret2, SerializerFeature.SkipTransientField);
        System.out.println(jsonString);
        // 输出: {"key2":"value"}

    }

实践代码示例:
在这里插入图片描述

如何包含 null 字段?

如果希望包含值为 null 的字段,需要使用 SerializerFeature.WriteMapNullValue

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class Main {
    public static void main(String[] args) {
        JSONObject obj_ret = new JSONObject();
        obj_ret.put("key1", null);
        obj_ret.put("key2", "value");

        // 包含 null 值字段的序列化
        System.out.println("Include null: " + JSON.toJSONString(obj_ret, SerializerFeature.WriteMapNullValue));
    }
}

输出:

{"key1":null,"key2":"value"}

总结

  1. 默认行为: FastJSON 的 toJSONString() 方法不会包含值为 null 的字段。
  2. 如何包含 null 字段: 使用 SerializerFeature.WriteMapNullValue 来显式启用包含 null 字段的行为。

http://www.kler.cn/a/447894.html

相关文章:

  • Datawhale AI冬令营——Chat-悟空设计
  • 2014年IMO第4题
  • 分布式系统架构5:限流设计模式
  • python coding(二) Pandas 、PIL、cv2
  • CUDA编程 | 6.2 并发内核执行
  • 【集合】Java 8 - Stream API 17种常用操作与案例详解
  • C 语言实现四旋翼飞行器姿态控制:基于 PID 控制器(2)
  • 【前端js】 indexedDB Nosql的使用方法
  • Sourcegraph 概述
  • Redis篇--常见问题篇8--缓存一致性3(注解式缓存Spring Cache)
  • opencv项目--文档扫描
  • 3.metagpt中的软件公司智能体 (Architect 角色)
  • 纯血鸿蒙APP实战开发——文字展开收起案例
  • C# cad启动自动加载启动插件、类库编译 多个dll合并为一个
  • 图解HTTP-HTTP协议
  • 反归一化 from sklearn.preprocessing import MinMaxScaler
  • 2024年最新多目标优化算法:多目标麋鹿群优化算法(MOEHO)求解DTLZ1-DTLZ7及工程应用---盘式制动器设计,提供完整MATLAB代码
  • iframe和浏览器页签切换
  • 解决uniapp中使用axios在真机和模拟器下请求报错问题
  • 亚马逊API接口深度解析:如何高效获取商品详情与评论数据
  • 洛谷 P1644 跳马问题 C语言
  • (耗时4天制作)详细介绍macOS系统 本博文含有全英版 (全文翻译稿)
  • 【NLP 16、实践 ③ 找出特定字符在字符串中的位置】
  • 2024.12 迈向可解释和可解释的多模态大型语言模型:一项综合调查
  • JDK13主要特性
  • Mysql复习(一)