Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

353
Visualizações
Cómo proporcionar el valor predeterminado a una propiedad booleana cuando era nulo

En el siguiente código, obtengo una excepción porque "isValid" viene como null en la solicitud de entrada.

Quiero establecer "isValid" en "False" cuando era null desde la solicitud de entrada.

¿Puede alguien por favor sugerirme cómo puedo hacer esto?

 public class Details { public string status { get; set; } public MessageInfo messageInfo { get; set; } } public class MessageInfo { public bool isValid { get; set; } } var inputMessage = { "Body": { "status":"success", "MessageInfo": { "isValid":null } } } var messagebody = inputMessage.Body.ToObject<Details>();
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Suponiendo que está usando Newtonsoft.Json, use la propiedad NullValueHandling de la clase JsonSerializer , configurándola para ignorar . Luego pase esta instancia de JsonSerializer a una sobrecarga de la ToObject<T> .

Esto le dice a la serialización que ignore cualquier propiedad que fuera nula, dejando la propiedad inicializada en su valor predeterminado. (Puede controlar ese valor predeterminado por separado a través System.ComponentModel.DefaultValueAttribute si lo desea).

Ejemplo de compilación completa a continuación. (Se eliminaron las referencias a 'Cuerpo' para que sea más fácil concentrarse en el problema principal).

 using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace SomeNamespace { public class Program { private static void Main() { var inputMessage = JToken.Parse( @"{ ""status"":""success"", ""MessageInfo"": { ""isValid"":null } }"); // build a custom serializer with a setting to ignore null var jsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, }; var serializer = JsonSerializer.Create(jsonSettings); // using the serializer with custom settings avoids the original exception var messagebody = inputMessage.ToObject<Details>(serializer); } } public class Details { public string status { get; set; } public MessageInfo messageInfo { get; set; } } public class MessageInfo { public bool isValid { get; set; } } }
over 4 years ago · Santiago Trujillo Relatório

0

esto funciona para mi

 void Main() { var inputMessage = "{ \"Body\":{\"status\":\"success\", \"MessageInfo\":{\"isValid\":null} }}"; var inputMessageObj= JsonConvert.DeserializeObject<Root>(inputMessage); }

clases

 public class Details { public string status { get; set; } public MessageInfo messageInfo { get; set; } } public class MessageInfo { private bool? _isValid = false; public bool? IsValid { get { return _isValid; } set { _isValid = value == null ? false : value; } } } public class Body { public string Status { get; set; } public MessageInfo MessageInfo { get; set; } } public class Root { public Body Body { get; set; } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda