Deserialisierung mit Json.NET: Es muss eine Eigenschaft / ein Schlüssel vorhanden sein
Beim BenutzenJson.NET Wie kann ich zum Deserialisieren einer JSON-Zeichenfolge in ein Objekt festlegen, dass ein Schlüssel / eine Eigenschaft im JSON-Speicher vorhanden sein muss, aber NULL-Werte zulassen?
Zum Beispiel:
Nehmen wir an, ich habe eine Klasse / ein Objekt ...
[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}
}
Im obigen Beispiel sind die VIN und die Farbe erforderlich, und es wird eine Ausnahme ausgelöst, wenn eine davon in der JSON-Zeichenfolge fehlt. Nehmen wir jedoch an, dass es optional ist, ob die Description-Eigenschaft nach der Deserialisierung einen Wert hat oder nicht. Mit anderen Worten ist NULL ein gültiger Wert. Dies kann auf zwei Arten in der JSON-Zeichenfolge geschehen:
1)
{
"vin": "blahblahblah7",
"color": "blue",
"description": null
}
oder 2)
{
"vin": "blahblahblah7",
"color": "blue"
}
Das Problem ist, dass ich nicht davon ausgehen möchte, dass der Wert Description NULL sein sollte, nur weil das Schlüssel / Wert-Paar für das in der JSON-Zeichenfolge weggelassen wurde. Ich möchte, dass der Absender des JSON explizit darüber informiert wird, wie er es auf NULL setzt. Wenn Szenario 2 eintreten sollte, möchte ich es erkennen und mit einer Fehlermeldung antworten. Wie muss das Schlüssel / Wert-Paar vorhanden sein, aber NULL als Wert akzeptieren?
Wenn es hilft, versuche ich, dieses Problem im Kontext eines zu lösenASP.NET-Web-API Projekt.