Хотите получить сериализованный вывод с игнорируемым значением по умолчанию. В моем случае я определил значение по умолчанию как ноль для свойства объекта. Возникла проблема с игнорированием значения по умолчанию на основе типа для данных объекта. найдите приведенные ниже проверенные коды.
MyClass myClass = new MyClass();
myClass.item1 = false;
myClass.item2 = 0;
myClass.item3 = "test";
myClass.item4 = new { item1Val = false, item2Val = 0, item3Val = "test" };
var output = JsonConvert.SerializeObject(myClass, Formatting.Indented, new JsonSerializerSettings
{
DefaultValueHandling = DefaultValueHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore
});
//...
public class MyClass
{
[DefaultValue(true)]
public bool item1 { get; set; }
[DefaultValue(10)]
public int item2 { get; set; }
[DefaultValue("")]
public string item3 { get; set; }
[DefaultValue(null)]
public object item4 { get; set; }
}
Фактический вывод:
{
"item1": false,
"item2": 0,
"item3": "test",
"item4": {
"item3Val": "test"
}
}
Ожидаемый вывод:
{
"item1": false,
"item2": 0,
"item3": "test",
"item4": {
"item1Val": false,
"item2Val": 0,
"item3Val": "test"
}
}
Примечание: мне нужен этот глобальный параметр DefaultValueHandling = DefaultValueHandling. Игнорировать, & NullValueHandling = NullValueHandling.Ignore.
Любой, кто посоветует это.