Json.net DefaultValueHandling免除布尔值

时间:2014-05-31 16:53:10

标签: c# json.net

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

提前致谢。

1 个答案:

答案 0 :(得分:11)

序列化设置中的

DefaultValueHandling.Ignore可以通过装饰具有[JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]属性的任何属性来覆盖。这是班级:

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
}