json使用powershell中的json模式进行验证

时间:2017-10-03 14:09:14

标签: json validation powershell

这是我在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的任何其他方法..

1 个答案:

答案 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