c# - Json.net DefaultValueHandling 单独豁免 bool 值

标签 c# json.net

在使用 json.net 进行序列化时,我在序列化设置中使用了 DefaultValueHandling.Ignore,如果 bool 设置为 false,这会导致删除 key 。我希望 bool 类型单独免除它,并申请其他类型和类。请帮忙

提前致谢。

最佳答案

序列化设置中的

DefaultValueHandling.Ignore 可以通过使用 [JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)] 属性装饰任何属性来覆盖。这是类(class):

public class Person
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    [JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]
    public bool IsEmployed { get; set; }
}

假设我们有以下示例:

var person = new Person
            {
                FirstName = "John",
                IsEmployed = false
            };

var json = JsonConvert.SerializeObject(person, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });

将产生以下 json:

{
    "FirstName": "John",
    "IsEmployed": false
}

关于c# - Json.net DefaultValueHandling 单独豁免 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23973056/

相关文章:

elasticsearch - 在ElasticSearch中序列化RegionInfo

c# - 反序列化时如何忽略下划线

json - 序列化不带引号的 C# 对象

c# - 在 windows phone 中使用 FFMPEG 将 .TS 文件转换为 .mp3

C# - JObject.Parse - 无效的 JSON

c# - 在仍以 .NET 3.5 运行时为目标的同时可以使用哪些 C# 4.0 功能?

c# - 如何使用linq获取内存位置?

serialization - SignalR : use camel case

c# - 无法将图像转换为 bytes[] C#

C# 后台线程完成后执行方法