java简单工具(一):JSON文件读取和写入

目前,JSON数据应用较为广泛,本文主要是展示采用JAVA读取JSON文件的最简洁方法

1、JSON文件格式

文件内容如下,文件名称为:data.json

java对json文件的处理 java操作json文件_java

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文件的读取结果为:

java对json文件的处理 java操作json文件_java_02

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";
		}
	}

追加写入结果为:

java对json文件的处理 java操作json文件_json_03