java中怎样读取json文件(Java读取本地JSON)

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

java中怎样读取json文件(Java读取本地JSON)(1)

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文件(Java读取本地JSON)(2)

单元测试方法,具体代码如下。

@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)(3)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页