簡體   English   中英

Java 中 JSON 模式的驗證

[英]Validation of JSON Schema in Java

我在 2019-09 之前編寫了一個 JSON 模式( https://json-schema.org/draft/2019-09/release-notes.html )。 我如何使用java驗證它?

我想編寫方法(如果驗證失敗則拋出異常):

void validate(Path pathToSchema) throws Exception {
   // validation of schema by pathToSchema
}

PS 我想驗證 JSON 架構的正確性,而不是 JSON 架構的 JSON 文檔。

你用眾所周知的networknt lib做這樣的事情:

    JsonSchema schema = null;
    JsonSchemaFactory factory = JsonSchemaFactory.getInstance(VersionFlag.V201909);
    try {
      schema = factory.getSchema(
          "{\n"
              + "  \"$schema\": \"http://json-schema.org/draft/2019-09/schema\",\n"
              + "  \"$id\": \"#MyJsonClassSchema.json\",\n"
              + "  \"type\": \"object\",\n"
              + "  \"properties\": {\n"
              + "    \"myProperty\": {\n"
              + "      \"type\": \"string\"\n"
              + "    }\n"
              + "  }\n"
              + "}"
      );
    } catch (JsonSchemaException e) {
      System.out.println("json schema invalid: \n" + e);
    }
    return schema;

這將從您在輸入中設置的架構版本開始驗證 json 架構的某些功能。

您可以使用 Json 驗證器: - https://github.com/fge/json-schema-validator

或者您可以簡單地嘗試使用 Google Gson 解析 Json 並捕獲語法異常以驗證它,如下所示:-

try{
JsonParser parser = new JsonParser();
parser.parse(passed_json_string);
} 
catch(JsonSyntaxException jse){
System.out.println("Not a valid Json String:"+jse.getMessage());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM