欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > FastJSON 默认不会包含值为 null 的字段

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

2025/6/29 19:49:49 来源:https://blog.csdn.net/ahauedu/article/details/144609273  浏览:    关键词: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 字段的行为。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词