자바

2014-10-29 1 views
1
에서 JSON 스키마 파일을로드하는 방법

내 프로젝트 인 Maven 프로젝트 및 내부 자원 폴더 - src/main/resources 폴더 내가 JSON 스키마 파일이 - "jsonschema.json"자바

패키지 : SRC를/주/자원
파일 :

지금 내가 JSON 스키마 내 된 JSONObject를 유효성을 검사 할 jsonschema.json 코드에의 schema.json 파일을로드하는 방법

:

다음 줄이 맞습니까?

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

파일 이름에 나열된 종속성을 추가 : 당신이 schema.json를 사용하는 jsonschema.json? 맞습니까? –

+0

이 질문을 수정했습니다. 실수입니다. – LazyGuy

+0

리소스가 호출 클래스와 동일한 폴더에 있으므로'JsonLoader.fromResource ("jsonschema.json") 만 사용하면됩니다. – face

답변

0

이 프로젝트 루트 디렉토리 또는 자원 당신에게
장소 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) { 

      } 

말을 읽을 정상 파일을 사용하여 스키마를 읽어 변수에 저장할 수 실행중인 프로그램. 아래의 [링크]

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

+0

정상적인 파일이라도 경로를 전달해야합니다. 좋아요? 그래서 src \ main \ resources 아래에서 사용할 수있는 파일을 어떻게 전달해야할까요? 그 부분을 추가 할 수 있습니다 ...! – LazyGuy

+0

이것을 시도하십시오 YourClassName.class.getClass(). getResource ("/ jsonschema.json"); –

+0

라이브러리는 classpath에서 리소스를로드하는 데 사용할 수있는'resource' 스키마를 지정합니다. 그래서 당신은 URI'resource :/wherever/your/json/is'에서 로딩 할 수 있습니다. – fge