Я использую эту функцию для этого
import ast
def parse_str(s):
try:
return ast.literal_eval(str(s))
except:
return
. Он преобразует строку в свой тип
value = parse_str('1') # Returns Integer
value = parse_str('1.5') # Returns Float
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
}