Java 如何以编程方式根据模式验证JSON字符串?

Java 如何以编程方式根据模式验证JSON字符串?,java,.net,json,validation,Java,.net,Json,Validation,有没有简单的库(.NET和Java)能够验证给定模式定义的JSON字符串 它的工作原理应该类似于使用XSD验证XML的方式 编辑:我需要.NET和Java库。感谢darin提供的.NET链接 您可以找到一些Java类,这些类在使用JSON时可能会有所帮助 当JSON字符串的语法不正确时,将抛出JSONException的实例-我认为这是检查正确性的最简单方法JSONTokener是必须用于解析的类。它有一个构造函数,它将java.lang.String作为参数 编辑:对不起,我有点误解了。可能就

有没有简单的库(.NET和Java)能够验证给定模式定义的JSON字符串

它的工作原理应该类似于使用XSD验证XML的方式

编辑:我需要.NET和Java库。感谢darin提供的.NET链接

您可以找到一些Java类,这些类在使用JSON时可能会有所帮助

当JSON字符串的语法不正确时,将抛出JSONException的实例-我认为这是检查正确性的最简单方法JSONTokener是必须用于解析的类。它有一个构造函数,它将java.lang.String作为参数


编辑:对不起,我有点误解了。可能就是你要找的图书馆。它为您可以使用的.NET提供了支持。

www.json-schema.org定义了在json中实现模式的标准。这里有一个软件列表,包括多种语言的验证器:


最近,我使用NJsonSchema for.NET库对一个模式进行验证,它对我来说非常有效,即使是在多个文件中有定义的复杂模式:

NJsonSchema是一个.NET库,用于读取、生成和验证JSON模式草案v4模式。该库可以从文件或字符串中读取模式,并根据该模式验证JSON数据。也可以从现有的.NET类生成架构。使用代码生成API,您可以从模式生成C#和TypeScript类或接口

它不仅允许根据模式进行验证,还允许从现有类生成模式文件。它的优点是它是一个开放源代码,在遇到我的问题时,与项目作者的沟通非常迅速和良好


对于那些正在寻找免费验证解决方案的人来说,它可能是一个不错的选择。

我正在寻找的是模式验证,而不是语法验证。我会把问题说得更清楚的。赞成票,谢谢你的链接。我将使用Json.NET和Json工具。无法接受2个答案?选择的库是Json.NET(用于.NET)和JsonTools(用于Java)。我使用和作为创建模式的参考。您也可以在这里在线查看您的模式和JSON:(来自JSON.NET的创建者)我打赌自2009年9月以来,这个主题已经发生了很大的变化。你现在有什么想法?您是否使用任何东西进行JSON验证(特别是Java)?还有,@Dejw,你自己呢?好吧,说实话,在我使用这个验证后不久,我就开始着手新的项目了。如果我没记错的话,我们最终取消了验证。我必须提供一种验证方法,以安抚更喜欢XML的高层。但他们最终还是很高兴没有得到验证。我真的不认为有什么理由增加验证的复杂性。只需将JSON对象映射到ViewModels或DTO,并进行适当的参数检查。我相信,您的服务器端ViewModels或DTO可以作为模式定义和验证的一体机。这是我最近的看法,听起来很合理。在Java世界中,DTO=serializable POJO,对吗?我的用法也只是为了满足业务需求,很可能只是镀金。不过,在这个空间中,许多java项目似乎有相当坚实的基础。也就是说,DTO是一个可序列化的POJO。不过,我已经很长时间没有使用Java了。我相信您可以在反序列化过程中使用POJO类属性上的属性(Java注释?)实现验证。不过,所有这些POJO类都是加起来的。