Ich entwickle eine API, um einige Daten mithilfe der ASP.NET-Web-API verfügbar zu machen.Angeben eines benutzerdefinierten DateTime-Formats beim Serialisieren mit Json.Net
In einer der API möchte der Client uns das Datum im Format JJJJ-MM-TT anzeigen. Ich möchte die globalen Einstellungen (z. B. GlobalConfiguration.Configuration.Formatters.JsonFormatter
) nicht ändern, da sie für diesen Client sehr spezifisch sind. Und ich entwickle das in einer Lösung für mehrere Kunden.
Einer der Lösung, die ich denken konnte, ist ein benutzerdefinierter Json-Konverter zu erstellen und das dann auf die Eigenschaft hat ich die benutzerdefinierte Formatierung
zum Beispiel tun müssen
class ReturnObjectA
{
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime ReturnDate { get;set;}
}
Ich frage mich nur, ob es eine andere einfache Möglichkeit gibt, das zu tun.
Für das, was es ist wert, APIs sind für Computer Lesbarkeit, nicht Benutzer Lesbarkeit, so ist es besser, zu einem einzigen angegebenen Datumsformat zu bleiben, wie [ISO 8601] (http://xkcd.com/1179/). Wenn der Client dem Benutzer das API-Ergebnis direkt anzeigt oder seinen eigenen Parsing-Code für die API schreibt, tun sie es falsch. Das Formatieren eines Datums für die Anzeige sollte auf der obersten UI-Ebene verbleiben. – MCattle