++添加 我想基于json模式文件验证json。 我目前将json保存为string,并尝试读取json模式文件(即test.json),然后进行验证。 但是,读取架构文件始终为null。
下面的代码是我到目前为止尝试过的。
++原始帖子。
这是我目前的情况。 我已经尝试了多种方法来获取文件(test.json)...
喜欢
InputStream in;
1. in= valid.class.getResourceAsStream("/test.json");
2. in = getClass().getClassLoader().getResourceAsStream("/test.json");
3. in = Thread.currentThread().getContextClassLoader().getResourceAsStream("//test.json");
4. in=getClass().getResourceAsStream("/test.json");
5. in=ValidationUtils.class.getResourceAsStream("../resources/ds/test.json");
6. ClassLoader classLoader = getClass().getClassLoader();
in = classLoader.getResourceAsStream("test.json");
7.in=getClass().getResourceAsStream("/ds/test.json"); //tried just now
System.out.println("in"+in); //this is always null.
没什么..上面的工作.. 请帮助我...
答案 0 :(得分:2)
默认情况下,您无法从src/test/resources
中的代码访问src/main/java
资源。所有src/test/resources
资源仅适用于通常存储在src/test/java
中并在test
阶段(在Maven中)执行的测试。在该阶段,测试代码可以通过您在问题中引用的某些(不是全部)方法访问该资源。
对于您的主类,资源根为src/main/resources
。您应该在其中存储JSON模式文件。测试代码也可以访问在那里存储的资源(因此不需要重复),反之亦然。
答案 1 :(得分:0)
获取资源时,资源文件夹是根目录。如果文件在子文件夹中,则需要将其包括在路径中。使用
in = getClass().getResourceAsStream("/ds/test.json");