程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何读取资源文件夹下的Json文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何读取资源文件夹下的Json文件??

开发过程中遇到如何读取资源文件夹下的Json文件?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何读取资源文件夹下的Json文件?的解决方法建议,希望对你解决如何读取资源文件夹下的Json文件?有所启发或帮助;

在我的 SpringBoot 应用程序中,我必须在这个路径 src/main/resources/mock/filename.Json 读取一个 Json 文件。 我是这样做的

JsonReader JsonReaderStream = new JsonReader(new inputStreamReader(Objects.requireNonNull(ClassLoader.getSystemClassLoader().getresourceAsstream("./mock/filename.Json"))));

它在本地工作,但是当我在 Kubernetes 上部署我的 docker 文件并尝试读取我的 Json 文件时,我收到了 NullPointerException。 我使用 gradle 进行构建。我声明我是 gradle、docker 和 kubernetes 的初学者。

谁能向我解释为什么它可以在本地运行,而不能在 Kubernetes 上运行?

解决方法

看起来您正在尝试为方法 getresourceAsStream 提供文件路径,但它没有提供。 JavaDoc 不是很好,您必须将不同的文档拼凑在一起才能理解它,但这里有一些相关部分:

查找具有给定名称的资源。资源是一些数据(图像、音频、文本等),可以通过类代码以独立于代码位置的方式访问。 资源的名称是一个以“/”分隔的路径名,用于标识资源。

[...]

在上面,资源的包名是 从最后一个 '/' 之前的字符的子序列派生 在名称中,然后替换子序列中的每个“/”字符 和 '。'。派生包名称时忽略前导斜杠。 例如,为名为的资源派生的包名称 “a/b/c/foo.properties”是“a.b.c”。

因此,要在正在运行的系统的类路径上找到您的资源,请删除 ./ 部分,使其仅显示为:.getresourceAsStream("mock/filename.json")

,

这里有两种可能。

  1. 未打包,未找到
  2. 已打包,未找到

进入 .jar 包,检查您的 mock/x.json 是否存在于 target\example.jar!\BOOT-INF\classes 中。

如果正在打包但未找到,请参阅this answer。
new ClassPathresource("./mock/filename.json") 然后使用 resource.geTinputStream()


强烈建议你把这些静态json文件放在resources/static/下,这样你就可以直接把这些文件比如resources/static/mock/a.json,作为/mock/a.json的请求

大佬总结

以上是大佬教程为你收集整理的如何读取资源文件夹下的Json文件?全部内容,希望文章能够帮你解决如何读取资源文件夹下的Json文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。