集合数据存储到本地json文本中,并解析

一、将数据存入json文本中
1、调用工具类,实现数据转为json,并生成json文本

JSONArray jsonarray = JSONArray.parseArray(JSON.toJSONString(dataList));
JsonToTXT.createTXT("地址.test10.json", jsonarray);
/**
 * 将爬取数据存储到json文件中
 */
public class JsonToTXT {
    public static void createTXT(String src, JSONArray array) throws IOException {
        File file = new File(src); //存储的目标文件
        FileWriter fw = null;
        BufferedWriter bw = null;
        fw = new FileWriter(file);
        bw = new BufferedWriter(fw);
        bw.write(array.toJSONString());
        bw.close();
        fw.close();
    }
}

二、解析json文件数据
1、获取文件位置,并对不同格式的json进行解析,如JSONObject、JSONArray

//对应的json文件应该放在resource目录下
String path = this.class.getClassLoader().getResource("文件名").getPath();
String s =readJsonFile(path);
//这里是Kotlin格式,自行转为java,格式都差不多
  fun readJsonFile(fileName: String?): String? {
    var jsonStr = ""
    return try {
        val jsonFile = File(fileName)
        val fileReader = FileReader(jsonFile)
        val reader: Reader = InputStreamReader(FileInputStream(jsonFile), "utf-8")
        var ch = 0
        val sb = StringBuffer()
        while (reader.read().also { ch = it } != -1) {
            sb.append(ch.toChar())
        }
        fileReader.close()
        reader.close()
        jsonStr = sb.toString()
        jsonStr
  } catch (e: IOException) {
      e.printStackTrace()
      null
  }
posted @ 2022-05-11 14:27  Retired-lad  阅读(275)  评论(0)    收藏  举报