"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo deserializar las propiedades de JSON sin serializarlas usando json.net?

¿Cómo puedo deserializar las propiedades de JSON sin serializarlas usando json.net?

Publicado el 2025-01-27
Navegar:631

How Can I Deserialize JSON Properties Without Serializing Them Using Json.Net?

Uso de Json.Net para deserializar propiedades sin serializar

En algunos casos, es posible que necesite deserializar propiedades de un objeto JSON serializado, pero no desee volver a escribirlas al serializar. A continuación se explica cómo lograr esto utilizando Json.Net.

Método 1: método ShouldSerialize

Json.Net le permite serializar propiedades condicionalmente definiendo el método ShouldSerialize en la clase. Cree un método ShouldSerializeBlah() (donde Blah es la propiedad que no desea serializar) y haga que siempre devuelva falso:

public bool ShouldSerializeObsoleteSetting()
{
    return false;
}

Método 2: utilizar JObject para operar JSON

Utilice JObject.FromObject para cargar objetos en JObject. Elimine atributos innecesarios antes de escribir en JSON:

JObject jo = JObject.FromObject(config);
jo["ObsoleteSetting"].Parent.Remove();
json = jo.ToString();

Método tres: abuso de atributos

Aplique el atributo [JsonIgnore] a las propiedades que no desee serializar. Defina un definidor de propiedad privada con el mismo tipo y nombre que la propiedad original y aplíquele el atributo [JsonProperty] usando el mismo nombre JSON:

[JsonIgnore]
public Fizz ObsoleteSetting { get; set; }

[JsonProperty("ObsoleteSetting")]
private Fizz ObsoleteSettingAlternateSetter
{
    set { ObsoleteSetting = value; }
}

Al utilizar uno de los métodos anteriores, puede excluir selectivamente propiedades de la serialización y al mismo tiempo permitir la deserialización.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3