Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

351
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda