首先获取本地的json文件
(详细信息或者乱码可参考:https://blog.youkuaiyun.com/xi_haibin/article/details/81946667)
/**
* 读取json文件并且转换成字符串
* @param filePath文件的路径
* @return
* @throws IOException
*/
public static String readJsonData(String pactFile) throws IOException {
// 读取文件数据
//System.out.println("读取文件数据util");
StringBuffer strbuffer = new StringBuffer();
File myFile = new File(pactFile);//"D:"+File.separatorChar+"DStores.json"
if (!myFile.exists()) {
System.err.println("Can't Find " + pactFile);
}
try {
FileInputStream fis = new FileInputStream(pactFile);
InputStreamReader inputStreamReader = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(inputStreamReader);
String str;
while ((str = in.readLine()) != null) {
strbuffer.append(str); //new String(str,"UTF-8")
}
in.close();
} catch (IOException e) {
e.getStackTrace();
}
//System.out.println("读取文件结束util");
return strbuffer.toString();
}
然后将获取的String类型转换为list集合
情况一:json文件中只有[]的内容
//获取josn信息
String jsons = new RfReadJsonFile().readJsonData("D:"+File.separatorChar+"文件名.json");//传入文件存放地址//File.separatorChar自动匹配斜杠
//将josn转换为list集合
List<实体名> list1 = new ArrayList<实体名>();
list1 = JSONObject.parseArray(jsons, 实体名.class);
情况二:json中[]外还有其它字符
//获取josn信息
String jsons = new RfReadJsonFile().readJsonData("D:"+File.separatorChar+"文件名.json");//传入文件存放地址//File.separatorChar自动匹配斜杠
//截取字符串,只保存josn中[]中的内容
jsons = jsons.substring(jsons.indexOf("[")-1,jsons.indexOf("]")+1);
//将josn转换为list集合
List<实体名> list1 = new ArrayList<实体名>();
list1 = JSONObject.parseArray(jsons, 实体名.class);