在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml、json等)也是一种实现方式,但是这有一个弊端,因为作为静态资源存储在站内势必就导致信息的安全性很低,所以如果采用这种方式则建议记录一些安全要求很低的配置属性,当然最好的做法就是使用redis缓存技术。下面就json文件的读写进行进一步说明。
1、json通用文件读取方法,这个方法会返回map对象:
/*** json读取
*
*@paramrequest
*@parampath
*@return
*/
public static ListJsonRead(HttpServletRequest request, String path) {
List maps = null;
String dir=request.getSession().getServletContext().getRealPath(path);
System.out.println(path);
System.out.println(dir);if (dir == null) {
System.out.println("找不到数据");return null;
}try{
File file= newFile(dir);if (!file.exists()) {
file.createNewFile();
}
String str= FileUtils.readFileToString(file, "UTF-8");
maps=(List) JSONArray.fromObject(str);
}catch(IOException e) {
e.printStackTrace();
}returnmaps;
};
2、json指定文件读取方法,这个方法是针对特定的json文件,返回值也是特定的实体对象:
首先要先定义实体类(我这里就拿项目中一个demo做示例):
packagecom.net.entity;/*** 系统广告图片
*@authorzhangdi
**/
public classSysAdverImg {private int id;//方便后期数据库拓展
private String img11;//首页广告1
private String img12;//首页广告2
private String img13;//首页广告3
private String img21;//积分广告1
private String img22;//积分广告2
private String img23;//积分广告3
private String url11;//首页广告链接1
private String url12;//首页广告链接2
private String url13;//首页广告链接3
private String url21;//积分广告链接1
private String url22;//积分广告链接2
private String url23;//积分广告链接3
public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicString getImg11() {returnimg11;
}public voidsetImg11(String img11) {this.img11 =img11;
}publicString getImg12() {returnimg12;
}public voidsetImg12(St