Ich versuche, ein JSON-Shema zu verwenden, um einen eingehenden Objektparameter in einem C# API zu überprüfen. Hier ist meine api Proto:Validieren Sie Objekt mithilfe von JSON-Schema in C#
void BuildSqlQueryFromSegment(JoinDefinition jsonDef);
JsonDefinition ist ein komplexen Objekte, mit vielen Eigenschaften. Die Werte der Eigenschaften sind voneinander abhängig, deshalb können hier einfache Validateurattribute wie Required, Min, Max nicht verwendet werden.
Eine Lösung wäre eine Zeichenfolge anstelle des Typs Objekt zu übergeben:
void BuildSqlQueryFromSegment(string jsonDef) {
// Check shema here, using Json.NET Schema
// if ok, deserialize and get the JsonDefition object instance
}
Ich bin in der Lage dies ganz leicht implment, aber ich finde diese Lösung nicht klug.
Was ich suche ist so etwas wie dieses:
void BuildSqlQueryFromSegment([SchemaValidation('MySchemaResourceHere')] JoinDefinition jsonDef);
Enthält diese Art von Attribut existieren? Wenn nicht, wie kann ich es implementieren? Wie kann ich auf eingehende Antwort-JSON-Zeichenfolge reagieren, um das Schema zu überprüfen?
Danke für Ihre Hilfe.
Die json.net-Bibliothek von newtonsoft hat einen Schema-Validator, ist aber nicht kostenlos. Möglicherweise haben Sie weitere Informationen auf http://www.newtonsoft.com/jsonschema. Trotzdem habe ich es nie benutzt, also weiß ich nicht, ob es Ihren Bedürfnissen entspricht. – mcy