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

477
Vistas
System.Json: reglas personalizadas para omitir la serialización de propiedades

Estoy tratando de migrar de Newtonsoft.Json a System.Text.Json. Sin embargo, me encontré con un problema porque estaba usando DefaultContractResolver. Mi comportamiento "personalizado" tiene estas reglas para la serialización de propiedades:

  1. Omita la serialización de propiedades si está marcada con el atributo ReadOnly
  2. Omitir serialización de propiedad en caso de nulo (esto es compatible)
  3. Omita la serialización de propiedades que se serializaría en un objeto vacío

Ejemplo:

 class Car { [ReadOnly] public string Id { get; set; } public string Name { get; set; } public Person Owner { get; set; } } class Person { [ReadOnly] public string Id { get; set; } public string Name { get; set; } }

Ahora, imagina, tenemos estos datos si no se aplicaran reglas.

 { "Id":"1234", "Name":"Skoda", "Owner":{ "Id":"abcd", "Name":null } }

Ahora, si serializo el objeto, me gustaría obtener esto en su lugar.

 { "Name":"Skoda" }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para ignorar propiedades individuales, debe usar el atributo [JsonIgnore] junto con una de estas condiciones:

  • Always ;
  • Never ;
  • WhenWritingDefault ;
  • WhenWritingNull .

También puede definir una condición de ignorar predeterminada a través del tipo JsonSerializerOptions .

Si se necesita un comportamiento adicional, debe escribir un convertidor personalizado.

Ejemplo:

 class Person { [JsonIgnore(Condition = JsonIgnoreCondition.Always)] public string Id { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public string Name { get; set; } }

Más información:

Cómo ignorar propiedades con System.Text.Json

Cómo escribir convertidores personalizados para serialización JSON (marshalling) en .NET

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