集合数据存储到本地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
}