java简单工具(一):JSON文件读取和写入
目前,JSON数据应用较为广泛,本文主要是展示采用JAVA读取JSON文件的最简洁方法
1、JSON文件格式
文件内容如下,文件名称为:data.json
2、JSON文件读取
局部变量:jsonPath为json文件的绝对地址,例如:D:\data\data.json,返回值为字符串。
/**
* 读取json文件数据
* @param jsonPath json文件路径
* @return 字符串
*/
public String readJson(String jsonPath) {
File jsonFile = new File(jsonPath);
try {
FileReader fileReader = new FileReader(jsonFile);
BufferedReader reader = new BufferedReader(fileReader);
StringBuilder sb = new StringBuilder();
while (true) {
int ch = reader.read();
if (ch != -1) {
sb.append((char) ch);
} else {
break;
}
}
fileReader.close();
reader.close();
return sb.toString();
} catch (IOException e) {
return "";
}
}
json文件的读取结果为:
3、JSON文件写入
将map数据转化为json用的到包为org.json,通过maven导入
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
json文件写入分为两种情况:一是追加数据;二是覆盖数据,可以通过参数flag控制,参数说明见注释。
/**
* 往json文件中写入数据
* @param jsonPath json文件路径
* @param inMap Map类型数据
* @param flag 写入状态,true表示在文件中追加数据,false表示覆盖文件数据
* @return 写入文件状态 成功或失败
*/
public String writeJson(String jsonPath, Map<String, Object> inMap, boolean flag) {
// Map数据转化为Json,再转换为String
String data = new JSONObject(inMap).toString();
File jsonFile = new File(jsonPath);
try {
// 文件不存在就创建文件
if (!jsonFile.exists()) {
jsonFile.createNewFile();
}
FileWriter fileWriter = new FileWriter(jsonFile.getAbsoluteFile(), flag);
BufferedWriter bw = new BufferedWriter(fileWriter);
bw.write(data);
bw.close();
return "success";
} catch (IOException e) {
return "error";
}
}
追加写入结果为: