java中怎样读取json文件(Java读取本地JSON)
在开发Elasticsearch的应用过程中,需要读取索引相关的JSON Settings、Mappings设置,将json文档存放到项目的resources 目录,然后读取并调用Elasticsearch API 执行。
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("文件名.文件类型")
单元测试方法,具体代码如下。
@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资源目录中,如下是输出结果。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com