JSON Scala 中的模式验证器
JSON schema validator in Scala
我需要验证我收到的某些 JSON 输入的架构。我不清楚如何处理整个事情。但这是我目前收集到的:
之类的东西为各种输入准备一个模式
这样的验证器
我需要将 json 输入和架构提供给验证器并获得结果。
但是我的问题是我需要使用一个可以导入和使用 json-schema-validator https://github.com/fge/json-schema-validator 的 jar。我也不清楚如何使用它。我不知道它接受的格式,类 和所需的方法等等
- 验证器对 Scala 的支持有多好?
Scala 有 Orderly、liftweb-json
基于 JSON 的验证器实现:
import com.nparry.orderly._
import net.liftweb.json.JsonAST._
val orderly = Orderly("integer {0,100};")
val noProblems = orderly.validate(JInt(50))
val notAllowed = orderly.validate(JInt(200))
使用net.liftweb.json.parse(s: String): JValue
从String获取JValue。
我不会经历手动收集 json 模式验证器的 jar 的痛苦(那样做,不好玩)。最好为此使用一个工具(如 maven、sbt、gradle 或 ivy)。
如果您想在 OSGi 环境中使用它,您可能需要使用 different (probably not up-to-date) version.
用法:
val factory: JsonSchemaFactory = JsonSchemaFactory.getDefault
val validator: JsonValidator = factory.getValidator
val schemaJson: com.fasterxml.jackson.databind.JsonNode = yourJsonSchemaInJackson2Format
val report: ProcessingReport = validator.validate(schemaJson, yourJsonInJackson2Format)
//check your report.
PS.: 如果您想手动收集依赖项,您可以从 this page.
开始传递依赖项
我注意到 orderly4jvm 不支持最新的 JSON 架构版本 4,如果您想使用它来生成 JSON 架构,这会导致问题。
我需要验证我收到的某些 JSON 输入的架构。我不清楚如何处理整个事情。但这是我目前收集到的:
- 之类的东西为各种输入准备一个模式
- 这样的验证器
我需要将 json 输入和架构提供给验证器并获得结果。
但是我的问题是我需要使用一个可以导入和使用 json-schema-validator https://github.com/fge/json-schema-validator 的 jar。我也不清楚如何使用它。我不知道它接受的格式,类 和所需的方法等等
- 验证器对 Scala 的支持有多好?
Scala 有 Orderly、liftweb-json
基于 JSON 的验证器实现:
import com.nparry.orderly._
import net.liftweb.json.JsonAST._
val orderly = Orderly("integer {0,100};")
val noProblems = orderly.validate(JInt(50))
val notAllowed = orderly.validate(JInt(200))
使用net.liftweb.json.parse(s: String): JValue
从String获取JValue。
我不会经历手动收集 json 模式验证器的 jar 的痛苦(那样做,不好玩)。最好为此使用一个工具(如 maven、sbt、gradle 或 ivy)。 如果您想在 OSGi 环境中使用它,您可能需要使用 different (probably not up-to-date) version.
用法:
val factory: JsonSchemaFactory = JsonSchemaFactory.getDefault
val validator: JsonValidator = factory.getValidator
val schemaJson: com.fasterxml.jackson.databind.JsonNode = yourJsonSchemaInJackson2Format
val report: ProcessingReport = validator.validate(schemaJson, yourJsonInJackson2Format)
//check your report.
PS.: 如果您想手动收集依赖项,您可以从 this page.
开始传递依赖项我注意到 orderly4jvm 不支持最新的 JSON 架构版本 4,如果您想使用它来生成 JSON 架构,这会导致问题。