我在一个名为B.json的文件中有一个JSON数据,另一个文件有一个名为BSchema.json的JSON Schema。
我想知道如何验证JSON数据是否满足JSON Schema规范,例如,在Ubuntu和Windows中我可以使用命令行中的xmllint使用以下命令验证相同内容:{{1 }}。那么,这个命令的任何替代方案(在Linux或Windows中)允许我输入两个文件并检查JSON数据是否满足JSON模式?
注意:如果在MacOS中有任何其他命令,请添加到您的答案中,这样问题对所有平台的用户都有用。
提前致谢。
答案 0 :(得分:1)
从版本2.4开始,jsonschema包含一个命令行程序,用于根据另一个文件中指定的模式检查某些输入json文件。
您可以这样称呼它:
jsonschema -i B.json BSchema.json
这里有一些示例输出,当我把一个对象放在一个数组应该是:
时{u' description&#39 ;: u' Doubles资源收集。'}:{u' description':u' Doubles资源收集。'}不属于u' array'
答案 1 :(得分:0)
有许多可用的命令行工具可以让你根据json架构验证json
如果是一次性的话,你可以查看json-spec。但是我发现它缺少json模式中的以下引用。
答案 2 :(得分:0)
在Powershell Core中,有一个内置方法,可让您执行验证test-json
。 PowerShell语法:Test-Json [-Json] <String> [[-Schema] <String>]
。有关更多信息,请点击此处:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/test-json
在问题中,还询问了有关环境的信息。 Powershell Core v.7.0 +是跨平台的,因此此验证可以在任何地方进行。如果您不能或不想使用PowerShell,可以尝试使用以下Python工具:Validate JSON file syntax in shell script without installing any package
答案 3 :(得分:-1)
以下是一个基于网络的工具,可以满足您的需求:http://jsonschemalint.com/
它看起来基于这个库:https://github.com/garycourt/JSV
我希望这有帮助!