[英]Newtonsoft.Json.Schema.JsonSchema is obsolete?
我正在嘗試使用此方法創建一個使用Json模式驗證Json字符串的方法: http : //www.newtonsoft.com/json/help/html/JsonSchema.htm
它說該對象已經過時並移動到它自己的包中,所以我使用NuGet
並安裝包( Newtonsoft.Json.dll
和Newtonsoft.Json.Schema.dll
是引用)並具有:
using Newtonsoft.Json.Schema;
using Newtonsoft.Json.Linq;
public bool validateSchema(string _Json)
{
JsonSchema schema = JsonSchema.Parse(
@"{
'properties': {
[MySchemaHere]
}
");
JObject jobject = JObject.Parse(_Json);
return jobject.IsValid(schema);
}
如何擺脫過時的消息? 聽起來像代碼已被移動到其他包/ dll,但以相同的方式調用/使用,我以某種方式引用過時的代碼? 這似乎我錯過了一些簡單/明顯的東西。
編輯:這是一個可能有用的圖像。
我終於創建了一個新項目並復制/粘貼了他們的例子,我看到了我一直在與之斗爭的痛苦明顯的錯誤。
我應該用:
JSchema
而不是
JsonSchema
你確定你有這個dll嗎? ,您的問題似乎是這個JSON Schema驗證已被移動到自己的包中 ,請在此處查看更多信息:
http://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json_Schema.htm
希望這有幫助
我在搜索“JSON.net schema”后添加了一個新的NuGet包時解決了我的問題,導致在選項中顯示另一個Newtonsoft.Json.Schema包:
工具> Nuget包管理器>管理解決方案的Nuget包
執行此操作后,將JSONSchema對象更改為JSchema對象。 這將刪除過時的消息並正確編譯代碼。
后:
string schemaJson = @"{
'description': 'A person',
'type': 'object',
'properties':
{
'name': {'type':'string'},
'hobbies': {
'type': 'array',
'items': {'type':'string'}
}
}
}";
更改:
JsonSchema schema = JsonSchema.Parse(schemaJson);
至
JSchema schema = JSchema.Parse(schemaJson);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.