1. 程式人生 > 其它 >集合資料儲存到本地json文字中,並解析

集合資料儲存到本地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
  }