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

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

追加写入结果为:
在这里插入图片描述

  • 11
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值