Java | 读取resources下面的Json文件
目录结构
工具类
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.io.ClassPathResource;
import java.io.InputStreamReader;
import java.io.Reader;
/**
* 描述:对Json文件的读操作
* 创建人:慌途L
*/
public class ReadJSONFileUtil {
/**
* 根据key获取json
* @param filepath 文件路径
* @param key json的key
* @return
*/
public static Object getJSONByKey(String filepath, String key){
String text = LocalJSONFileUtil.getFileText(filepath);
JSONObject object = new JSONObject();
if (StringUtils.isNoneBlank(text)){
object = parseObject(text);
}
return object.get(key);
}
/**
* 将json 字符串转换为json对象
*/
public static JSONObject parseObject(String text) {
return JSONObject.parseObject(text);
}
/**
* 获取文件内文本
* @param filepath
* @return
*/
public static String getFileText(String filepath){
StringBuffer sb = new StringBuffer();
try{
ClassPathResource classPathResource = new ClassPathResource(filepath);
Reader reader = new InputStreamReader(classPathResource.getInputStream());
int ch = 0;
while ((ch = reader.read())!=-1){
sb.append((char)ch);
}
}catch (Exception e) {
e.printStackTrace();
}
return sb.toString().replaceAll("\r\n","").replaceAll(" ","");
}
}
使用
@GetMapping("/123")
public void test123() {
String fileText = ReadJSONFileUtil.getFileText("static/FedexErrorCodes.json");
JSONObject jsonObject = JSONObject.parseObject(fileText);
JSONArray errorList = JSONArray.parseArray(jsonObject.getString("errorList"));
HashMap<String, String> map = new HashMap<>();
System.out.println(errorList);
}
FedexErrorCodes.json(一小节)
{
"errorList" : [
{
"code" : "SHIPMENT.VAGUECOMMODITYDESC.ERROR",
"errorDescription" : "货品{COMMODITY_INDEX}的描述含糊不清,EXPORTDETAIL.B13AFILINGOPTION.INVALID不予接受。"
},
{
"code" : "EXPORTDETAIL.B13AFILLINGOPTION.REQUIRED",
"errorDescription" : "需为此货件提供加拿大出口申报单。请更新后重试。"
},
{
"code" : "EXPORTDETAIL.B13AFILINGOPTION.INVALID",
"errorDescription" : "加拿大出口申报单提交选项丢失或无效。请更新后重试。"
}]
}
欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!