Java 读取本地 JSON 文件

在开发Elasticsearch的应用过程中,需要读取索引相关的JSON Settings、MAppings设置,将JSON文档存放到项目的resources 目录,然后读取并调用Elasticsearch API 执行 。

Java 读取本地 JSON 文件

文章插图
 
POM依赖<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
读取JSON工具类package com.fanxb.esdemo.util;
import JAVA.io.*;
public class JsonUtil {
/**
* 读取json文件,返回json串
* @param fileName
* @return
*/
public static String readJsonFile(String fileName) {
String jsonStr = "";
try {
File jsonFile = new File(fileName);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
编写单元测试getResource(""):这个方法可以用于查看当前目录 。
this.getClass().getResource("")和this.getClass().getClassloader().getResource("") 区别?
第一个是类路径下(即 class 根目录);
第二个目录是 class目录里面当前类的包路径(package);
参考下图,推荐写法:
this.getClass().getClassLoader().getResource("文件名.文件类型")
Java 读取本地 JSON 文件

文章插图
 
单元测试方法,具体代码如下 。
@Test
public void readJsonFile(){
String path = this.getClass().getClassLoader().getResource("order_template.json").getPath();
String jsonFile = JsonUtil.readJsonFile(path);
System.out.println(jsonFile);
}
order_template.json文件放入resources资源目录中,如下是输出结果 。
Java 读取本地 JSON 文件

文章插图
 

【Java 读取本地 JSON 文件】


    推荐阅读