JsonConvert.SerializeObject сбрасывает логические свойства false [duplicate]

Я использую эту функцию для этого

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
3
задан Gokoulane Ravi 31 May 2014 в 17:53
поделиться

1 ответ

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
}
7
ответ дан Ilija Dimov 24 August 2018 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: