Java从json文件中读取数据
数据准备
数据是利用python生成的一个字典x,然后使用json.dump(x, file)就可以将数据保存成json文件存储至本地。
读取数据
借助java自带的一些FIle包和阿里的JSON、JSONArray、JSONObject三个包来完成文件的读取。
因为读文件时可能会出现异常,所以要用try/catch捕获异常。代码如下:
public static void readFile() {
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(new File("/home/xx/Desktop/data.json")));
JSONObject data = (JSONObject)JSON.parse(reader.readLine());
reader.close();
if (data.containsKey("car")) {
JSONArray carInfo = (JSONArray)data.get("car"); // 获得key=shop_info的value
System.out.println(carInfo);
System.out.println(carInfo.size()); // 获得数组的大小
for (int i=0; i<carInfo.size(); i++) { // 遍历数组
System.out.print(i + "\t" + carInfo.getString(i));
System.out.println("\t" + carInfo.getString(i).split(":").length);
String[] tmp = carInfo.getString(i).split(":"); // 对数组中第i个数据进行拆分
for (int j=0; j<tmp.length; j++) {
System.out.print(tmp[j] + " ");
}
System.out.println();
}
System.out.println("YES");
}
}catch (FileNotFoundException e) {
System.out.println('1');
e.printStackTrace();;
} catch (IOException e) {
System.out.println('2');
System.out.println("read data file error.\n" + e.getMessage());
// e.print("read data file error.\n" + e.getMessage());
} catch (Exception e) {
System.out.println('3');
System.out.println(e.getMessage());
// logger.error(e.getMessage());
}
}