Json.net DefaultValueHandling免除布尔值

Gok*_*avi 6 c# json.net

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

提前致谢.

Ili*_*mov 13

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; }
}
Run Code Online (Sandbox Code Playgroud)

让我们说我们有以下样本:

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

var json = JsonConvert.SerializeObject(person, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });
Run Code Online (Sandbox Code Playgroud)

将导致以下json:

{
    "FirstName": "John",
    "IsEmployed": false
}
Run Code Online (Sandbox Code Playgroud)