serializando .NET enums como strings em json com javascriptSserializer
O padrão .net javascriptSserializer
geralmente produz enums como seus valores inteiros no JSON. Para serializar -os como cordas representando seus nomes, existem vários métodos.
Método 1: alavancando json.net's stringenumConverter
A abordagem mais direta e recomendada utiliza o poderoso stringenumconverter do json.net
. Este conversor pode ser aplicado no nível de definição da enumeração ou no nível da propriedade:
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
[JsonConverter(typeof(StringEnumConverter))]
public enum Gender { Male, Female }
public class Person
{
public int Age { get; set; }
[JsonConverter(typeof(StringEnumConverter))] // Or apply at property level
public Gender Gender { get; set; }
}
isso garante o gênero
propriedade serializa como uma string ("masculino" ou "feminina") no JSON resultante.
Método 2: Opções de configuração global
Para um aplicativo mais amplo, configure o stringenumconverter
globalmente:
no nível da enumeração: Aplique o conversor à própria definição de enum para serializar uma serialização de string consistente em todos os usos desse enum:
[JsonConverter(typeof(StringEnumConverter))]
public enum Gender { Male, Female }
com jsonserializer
: Adicione o conversor a uma instância específica
var serializer = new JsonSerializer();
serializer.Converters.Add(new StringEnumConverter());
// ... use serializer to serialize your objects ...
jsonConvert : Aplique o conversor diretamente durante a serialização:
var serializer = new JsonSerializer();
serializer.Converters.Add(new StringEnumConverter());
// ... use serializer to serialize your objects ...
stringenumconverter
O
construtor oferece personalização adicional, permitindo o controle sobre convenções de nomeação e manipulação de números. Consulte a documentação do JSON.NET para obter opções detalhadas.
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