我有一个自定义类,看起来像这样:Json.NET:如何使DefaultValueHandling仅适用于某些类型?
public class PartnerLoginOptions
{
public string Username { get; set; }
public string Password { get; set; }
public string DeviceModel { get; set; }
public string Version { get; set; }
public bool? IncludeUrls { get; set; }
public bool? ReturnDeviceType { get; set; }
public bool? ReturnUpdatePromptVersions { get; set; }
}
我想忽略任何bool?
成员默认值序列化时,却保持字符串与空值。举例来说,如果我有这样的
var options = new PartnerLoginOptions
{
Username = null,
Password = "123",
IncludeUrls = null,
ReturnDeviceType = true
};
一个对象,然后序列化会导致这样的:
{
"username": null,
"password": "123",
"deviceModel": null,
"version": null,
"returnDeviceType": true
}
这里是我的代码至今:
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
DefaultValueHandling = DefaultValueHandling.Ignore // this applies to strings too, not just bool?
};
return JsonConvert.SerializeObject(options, settings);
有什么方式做到这一点,没有单独标记OptionalBool
财产与[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]
?谢谢。