System.Text.Json 序列化配置

内容纲要

常用的 Json 序列化配置如下:


        // json 序列化配置
        private static readonly JsonSerializerOptions JsonSetting = new JsonSerializerOptions()
        {
            // 首字母小写
            PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
            // 格式化输出,即自动换行、加上空格
            WriteIndented = true,
        };

在序列化的时候使用:

JsonSerializer.Serialize(obj, JsonSetting)

序列化配置的其他属性:

属性

AllowTrailingCommas 获取或设置一个值,该值指示要反序列化的 JSON 有效负载中是否允许(和忽略)对象或数组中 JSON 值的列表末尾多余的逗号。
Converters 获取已注册的用户定义的转换器的列表。可将数值转换为字符串等;
DefaultBufferSize 获取或设置创建临时缓冲区时要使用的默认缓冲区大小(以字节为单位)。
DefaultIgnoreCondition 指定一个条件,用于确定何时在序列化或反序列化过程中忽略具有默认值的属性。
DictionaryKeyPolicy 将 字典的 Key 首字母生成小写
Encoder 获取或设置要在转义字符串时使用的编码器,或为 null(要使用默认编码器的话)。
IgnoreNullValues 获取或设置一个值,该值确定是否 null 在序列化过程中忽略值。 默认值为 false
IgnoreReadOnlyFields 确定序列化过程中是否忽略只读字段。 如果某字段用 readonly 关键字进行标记,则该字段为只读字段。 默认值为 false
IgnoreReadOnlyProperties 获取一个值,该值确定序列化过程中是否忽略只读属性。 默认值为 false
IncludeFields 确定是否在序列化和反序列化期间处理字段。 默认值为 false
MaxDepth 获取或设置序列化或反序列化 JSON 时允许的最大深度,默认值 0 表示最大深度为 64。
NumberHandling 指定序列化或反序列化时应如何处理数字类型。
PropertyNameCaseInsensitive 获取或设置一个值,该值确定在反序列化过程中属性名称是否使用不区分大小写的比较。 默认值为 false
PropertyNamingPolicy 生成 Json 时首字母小写。
ReadCommentHandling 定义反序列化过程中如何处理注释。
ReferenceHandler 配置在读取和写入 JSON 时如何处理对象引用。
WriteIndented 格式化输出 Json,即自动换行、空格、缩进。
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注

You must enable javascript to see captcha here!