我需要验证我收到的某些JSON输入的架构。我不清楚如何处理整个事情。但这是我到目前为止收集的内容:
我需要将json输入和架构提供给验证器并获得结果。
但是我的问题是我需要使用一个jar,我可以导入并使用json-schema-validator https://github.com/fge/json-schema-validator。我也不清楚如何使用它。我不知道它接受的格式,所需的类和方法等。
答案 0 :(得分:1)
基于Orderly,liftweb-json
的Scala的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。
答案 1 :(得分:1)
我不会经历手动收集json架构验证器罐子的痛苦(做到这一点,不好玩)。最好使用一种工具(如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开始传递依赖项。
答案 2 :(得分:0)
我注意到orderly4jvm不支持最新的JSON Schema版本4,如果你想用它来生成JSON架构,会导致问题。