Ich verwende den ACE-Code-Editor, um Json zu sammeln und an meine Anwendung zu senden. Sobald der Json die Anwendung schlägt, muss ich sicherstellen, dass es bestimmte Schlüssel im JSON gibt, also verwende ich JsonConvert.DeserisalizeObject<t>
, um dies zu tun. Hier ist, wie:Versuchen, eine JSON-Datei für die richtigen Parameter zu überprüfen mit JsonConvert.DeserisalizeObject <t>
public void SubmitReport(string JsonStringSend)
{
try
{
ReportItem RptItem = JsonConvert.DeserializeObject<ReportItem>(JsonStringSend);
}
catch(err)
{
return View(err);
}
}
und:
public class ReportItem
{
public Guid ReportID;
public bool RequiresFilter;
public string MimeType { get; set; }
public string ExternalID { get; set; }
public DateTime CreatedBy { get; set; }
public string ExecutionScript { get; set; }
public string ExecutionParameter { get; set; }
public string ExecutionOrderBy { get; set; }
public List<DynamicFilter> DynamicFilters { get; set; }
public bool RequiresOrgID { get; set; }
public QueryFilter ReportFilter { get; set; }
public QueryRule ReportRules { get; set; }
public List<QueryColumn> Columns { get; set; }
}
Aber aus irgendeinem Grund, es richtig über den Fang springt auch wenn ich sicher, einige der Schlüssel des nicht korrekt sind. Verstehe ich nicht die korrekte Verwendung JsonConvert.DeserisalizeObject<t>
? Oder gibt es einen besseren Weg, diese Überprüfung durchzuführen?
Dies bestätigt nur die Json, es lässt sich aber nicht, dass bestimmte Schlüssel in der json sind das, was ich brauche. –
Sie meinen, Pflichtfelder? Es bestätigt das. Verwenden Sie "erforderlich": http://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.3 – Nikolay
Da ich schon ein Model gebaut hatte, wollte ich nicht haben um auch ein Schema zu erstellen. Ich dachte, ich könnte einfach das Modell verwenden und darauf basierend validieren. –