【问题标题】:How to load JSON Schema file from java如何从 java 加载 JSON Schema 文件
【发布时间】:2014-10-29 07:45:20
【问题描述】:

我的项目是一个 maven 项目,在资源文件夹内 - src/main/resources 文件夹我有一个 json 模式文件 - “jsonschema.json”

:src/main/resources
文件:jsonschema.json

现在我想用 json 模式验证我的 jsonobject

如何将 schema.json 文件加载到代码中:

下面这行正确吗?

JsonNode schema = JsonLoader.fromResource("/jsonschema.json");  // correct? or correct me
JsonNode data = JsonLoader.fromString(jsonData);
ProcessingReport report = validator.validate(schema, data);

【问题讨论】:

  • 文件名:jsonschema.json 你使用的是schema.json吗?对吗?
  • 编辑了问题..这是一个拼写错误
  • 由于资源与您的调用类位于同一文件夹中,因此仅使用 JsonLoader.fromResource("jsonschema.json") 应该适合您。
  • @face:它不在同一个文件夹中.. jsonschema 在 src\main\resources 文件夹中并在 src\main\java\util 包中调用类。所以我在问如何阅读..!

标签: java json jsonschema json-schema-validator


【解决方案1】:

这可能对你有帮助
将 jsonschema 文件放在项目根目录或资源中,并使用普通文件读取模式并将其存储在变量中,例如 str

     booleab isValidRequest=false;
     String     requestData; // data to validate
     String str; //schema 

            JsonNode requestDataJsonNode = com.github.fge.jackson.JsonLoader.fromString(requestData);       
            final JsonNode schemaNode = JsonLoader.fromString(str);
           final JsonNode schemaNode=JsonLoader.fromResource("/jsonschema.json"); // for your query
            final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
            JsonValidator validator = factory.getValidator();        
            ProcessingReport processingReport=  validator.validate(schemaNode, requestDataJsonNode); 
            if(processingReport!=null)
            {
                isValidRequest=processingReport.isSuccess();
            }
            
            } catch (Exception e) {
                
            }

如果您在执行程序时遇到异常。 添加下面列出的依赖项 [link]

http://mvnrepository.com/artifact/com.github.fge/json-schema-validator/2.2.5

【讨论】:

  • 即使是普通文件我也需要传递路径..对吗?那么我应该为 src\main\resources 下可用的文件传递什么。你能添加那部分吗...!
  • 试试这个 YourClassName.class.getClass().getResource("/jsonschema.json");
  • 请注意,该库指定了一个resource 方案,您可以使用它从类路径加载资源;因此您可以从 URI resource:/wherever/your/json/is 加载
  • @fge :我使用的代码在答案部分..! com.github.fgejson-schema-validator2.2.5
  • 我想消除不必要的依赖或从 com.github.fge 中排除依赖。从上面的代码sn-p,还有什么对我来说是不必要的..我从“mvn依赖树”中找到了几个jar,比如javax.mail、google code等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 2016-03-25
  • 2014-01-17
  • 1970-01-01
相关资源
最近更新 更多