![](/img/trans.png)
[英]How to validate a JSON object against a JSON schema without using JSchema nuget in c#?
[英]Validate object using json schema in C#
我正在嘗試使用json shema來驗證C#API中的傳入objet參數。 這是我的api proto:
void BuildSqlQueryFromSegment(JoinDefinition jsonDef);
JsonDefinition是一個復雜的對象,具有很多屬性。 屬性值相互依賴,這就是為什么不能在此處使用簡單的validateur屬性(如Required,Min,Max)的原因。
一種解決方案是傳遞一個字符串而不是類型對象:
void BuildSqlQueryFromSegment(string jsonDef) {
// Check shema here, using Json.NET Schema
// if ok, deserialize and get the JsonDefition object instance
}
我能夠很容易地實現這一點,但是我發現這種解決方案並不明智。
我正在尋找的是這樣的:
void BuildSqlQueryFromSegment([SchemaValidation('MySchemaResourceHere')] JoinDefinition jsonDef);
是否存在這種屬性? 如果沒有,我該如何實施? 如何處理傳入響應json字符串以檢查架構?
謝謝你的幫助。
首先,您需要從JoinDefinition類創建JsonSchema。
JsonSchemaGenerator schemaGenerator = new JsonSchemaGenerator{ };
var o = new JoinDefinition ();
JsonSchema Objschema = schemaGenerator.Generate(o.GetType());
比從字符串中獲取Jsonschema
JObject jObject= JObject.Parse(JsonString);
bool valid = jObject.IsValid(Objschema);
如果JsonString模式與類json模式匹配,則返回true,否則返回false
您將必須使用以下名稱空間
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Schema;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.