读取或更新resources下的json文件;

{
  "links": [
    {
      "name": "MYSQL_HOST",
      "title": "MYSQL_HOST",
      "content": "127.0.0.1"
    },
    {
      "name": "MYSQL_PORT",
      "title": "端口",
      "content": "3306"
    },
    {
      "name": "MYSQL_DBNAME",
      "title": "数据库",
      "content": "tableau"
    },
    {
      "name": "MYSQL_USER",
      "title": "用户名",
      "content": "root"
    },
    {
      "name": "MYSQL_PASSWORD",
      "title": "密码",
      "content": "123456"
    }
  ]
}
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.context.annotation.Profile;
import java.io.*;
import java.util.HashMap;

public class JsonUtils {

    public static String readJSON(String fileName) throws Exception {

        String filePath = Profile.class.getClassLoader().getResource(fileName).toURI().getPath();
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));

        StringBuilder sb = new StringBuilder();
        String line = "";
        while ((line = reader.readLine()) != null) {
            sb.append(line);
        }
        String result = sb.toString().replaceAll("\r\n", "").replaceAll(" +", "");

        return result;
    }

    public static void updateJSON(String fileName, HashMap<String, String> map) throws Exception {

        JSONObject jsonObject = JSON.parseObject(readJSON(fileName));
        JSONArray links = jsonObject.getJSONArray("links");

        for (int i = 0; i < links.size(); i++) {
            JSONObject item1 = links.getJSONObject(i);
            if (item1.getString("name").equalsIgnoreCase(map.get("name"))) {
                item1.put("content", map.get("content"));
            }
        }

        JSONObject nItem = new JSONObject();
        nItem.put("links", links);
        String nContent = JSON.toJSONString(nItem);

        String filePath = Profile.class.getClassLoader().getResource(fileName).toURI().getPath();

        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath)));
            bw.write("");
            bw.write(nContent);
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
    @PostMapping()
    public ResponseEntity<Object> editConfig(@RequestBody HashMap<String, String> map) throws Exception {


        JsonUtils.updateJSON("user.json", map);

        return new ResponseEntity<>(HttpStatus.OK);
    }

岁月峥嵘走过
34 声望2 粉丝