"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso desfazer as propriedades do JSON sem serializar -as usando o json.net?

Como posso desfazer as propriedades do JSON sem serializar -as usando o json.net?

Publicado em 2025-01-27
Navegar:234

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

Usando Json.Net para desserializar propriedades sem serializar

Em alguns casos, pode ser necessário desserializar propriedades de um objeto JSON serializado, mas não deseja gravá-las de volta durante a serialização. Veja como conseguir isso usando Json.Net.

Método 1: método ShouldSerialize

Json.Net permite serializar propriedades condicionalmente definindo o método ShouldSerialize na classe. Crie um método ShouldSerializeBlah() (onde Blah é a propriedade que você não deseja serializar) e faça com que ele sempre retorne false:

public bool ShouldSerializeObsoleteSetting()
{
    return false;
}

Método 2: Use JObject para operar JSON

Use JObject.FromObject para carregar objetos em JObject. Remova atributos desnecessários antes de escrever em JSON:

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

Método três: abuso de atributos

Aplique o atributo [JsonIgnore] às propriedades que você não deseja serializar. Defina um configurador de propriedade privada com o mesmo tipo e nome da propriedade original e aplique o atributo [JsonProperty] a ele usando o mesmo nome JSON:

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

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

Usando um dos métodos acima, você pode excluir seletivamente propriedades da serialização e ainda permitir a desserialização.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3