这是我在powershell中用jsonschema验证json的代码。及其错误以及以下错误消息。
无法找到"验证过载"和参数计数:" 2"。
$json = Get-Content -Raw -Path C:\temp\locationstores.json
$SchmeaJson = Get-Content -Raw -Path C:\temp\LocationstoreSchema.json
NewtonsoftJsonAssembly = [Reflection.Assembly]::LoadFile("C:\temp\Json100r3\Bin\net45\Newtonsoft.Json.dll")
$NewtonsoftJsonSchemaAssembly = [Reflection.Assembly]::LoadFile("C:\temp\JsonSchema30r3\Bin\net45\NewtonSoft.Json.Schema.dll")
Add-Type -Path "C:\temp\JsonSchema30r3\Bin\net45\NewtonSoft.Json.Schema.dll"
Add-Type -Path "C:\temp\Json100r3\Bin\net45\Newtonsoft.Json.dll"
[Newtonsoft.Json.Schema.SchemaExtensions]::Validate([Newtonsoft.Json.Linq.JToken]::Parse($json), [Newtonsoft.Json.Schema.JSchema]::Parse($SchmeaJson))
请有人告诉我错误是什么,以及在powershell中使用json架构验证json的任何其他方法..
答案 0 :(得分:0)
您可以尝试另一种方法调用:
示例C#代码要适应:
public void ValidateWithOutEventHandlerFailure()
{
//...
JsonSchema schema = JsonSchema.Parse("{'pattern':'lol'}");
JToken stringToken = JToken.FromObject("pie");
stringToken.Validate(schema);
来源:JSON.NET单元测试 https://github.com/JamesNK/Newtonsoft.Json/blob/aa5f28c09732db5fb3e316433547ea7cdecd8804/Src/Newtonsoft.Json.Tests/Schema/ExtensionsTests.cs