如何验证JSON数据是否满足JSON模式规范?

时间:2013-01-26 17:09:00

标签: json

我在一个名为B.json的文件中有一个JSON数据,另一个文件有一个名为BSchema.json的JSON Schema。

我想知道如何验证JSON数据是否满足JSON Schema规范,例如,在Ubuntu和Windows中我可以使用命令行中的xmllint使用以下命令验证相同内容:{{1 }}。那么,这个命令的任何替代方案(在Linux或Windows中)允许我输入两个文件并检查JSON数据是否满足JSON模式?

注意:如果在MacOS中有任何其他命令,请添加到您的答案中,这样问题对所有平台的用户都有用。

提前致谢。

4 个答案:

答案 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模式中的以下引用。

但是如果您需要CI工具并且使用node.js / grunt作为开发环境,请使用tv4及其繁琐的作业grunt-tv4

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

我希望这有帮助!