Desserializando com Json.NET: Requerendo que uma propriedade / chave esteja presente
Ao usarJson.NET para desserializar uma string JSON em um objeto, como eu preciso que uma chave / propriedade esteja presente no JSON stirng, mas permita valores NULL?
Por exemplo:
Vamos dizer que eu tenho uma classe / objeto ...
[DataContract]
public class Car
{
[DataMember(IsRequired = true)]
public string Vin {get; set;}
[DataMember(IsRequired = true)]
public string Color {get; set;}
public string Description {get; ;set}
}
No exemplo acima, o VIN e a cor são necessários e uma exceção seria lançada se um deles estivesse faltando na sequência JSON. Mas vamos dizer que o fato de a propriedade Description ter ou não um valor após ser desserializado é opcional. Em outras palavras, NULL é um valor válido. Existem duas maneiras de fazer isso acontecer na string JSON:
1)
{
"vin": "blahblahblah7",
"color": "blue",
"description": null
}
ou 2)
{
"vin": "blahblahblah7",
"color": "blue"
}
O problema é que eu não quero assumir que o valor da descrição deve ser NULL apenas porque o par de chave / valor para o foi deixado de fora da seqüência JSON. Eu quero que o remetente do JSON seja explícito sobre como defini-lo como NULL. Se o cenário 2 acontecer, quero detectá-lo e responder com uma mensagem de erro. Então, como eu exijo que o par chave / valor esteja presente, mas aceite NULL como um valor?
Se isso ajuda, estou tentando resolver este problema dentro do contexto de umAPI da Web do ASP.NET projeto.