一、要解决这个问题首先要知道json格式是什么?
JSON格式:
比如学生有学号,姓名,性别等。
用json表示则为:
{"studno":"11111","studname":"wwww","studsex":"男"}(各个字段都是字符型)
这代表一个学生的信息。
如果多个呢?
[{"studno":"122222","studname":"wwww","studsex":"男"},
{"studno":"11111","studname":"xxxx","studsex":"男"},
{"studno":"33333","studname":"ssss","studsex":"男"}]
这就是json格式。
二、那如何操作json格式的文件呢?
这个更简单了,说白了就是直接读写文件,再把读出来的文件内容格式化成json就可以了。
三、具体操作。
1.我有一个实体类,如下:
public class ElectSet {
public String xueqi;
public String xuenian;
public String startTime;
public String endTime;
public int menshu;
public String isReadDB;
//{"xueqi":,"xuenian":,"startTime":,"endTime":,"renshu":,"isReadDB":}
public String getXueqi() {
?? return xueqi;
}
public void setXueqi(String xueqi) {
?? this.xueqi = xueqi;
}
public String getXuenian() {
?? return xuenian;
}
public void setXuenian(String xuenian) {
?? this.xuenian = xuenian;
}
public String getStartTime() {
?? return startTime;
}
public void setStartTime(String startTime) {
?? this.startTime = startTime;
}
public String getEndTime() {
?? return endTime;
}
public void setEndTime(String endTime) {
?? this.endTime = endTime;
}
public int getMenshu() {
?? return menshu;
}
public void setMenshu(int menshu) {
?? this.menshu = menshu;
}
public String getIsReadDB() {
?? return isReadDB;
}
public void setIsReadDB(String isReadDB) {
?? this.isReadDB = isReadDB;
}
}
2.有一个json格式的文件,存的就是他的信息,如下
Sets.json:
{"xuenian":"2007-2008","xueqi":"1","startTime":"2009-07-19 08:30","endTime":"2009-07-22 18:00","menshu":"10","isReadDB":"Y"}
3.具体操作.
/*
* 取出文件内容,填充对象
*/
public ElectSet findElectSet(String path){
?? ElectSet electset=new ElectSet();
?? String sets=ReadFile(path);//获得json文件的内容
?? JSONObject jo=JSONObject.fromObject(sets);//格式化成json对象
?? //System.out.println("------------" jo);
?? //String name = jo.getString("xuenian");
?? //System.out.println(name);
?? electset.setXueqi(jo.getString("xueqi"));
?? electset.setXuenian(jo.getString("xuenian"));
?? electset.setStartTime(jo.getString("startTime"));
?? electset.setEndTime(jo.getString("endTime"));
?? electset.setMenshu(jo.getInt("menshu"));
?? electset.setIsReadDB(jo.getString("isReadDB"));
?? return electset;
}
//设置属性,并保存
public boolean setElect(String path,String sets){
?? try {
??? writeFile(path,sets);
??? return true;
?? } catch (IOException e) {
??? // TODO Auto-generated catch block
??? e.printStackTrace();
??? return false;
?? }
}
//读文件,返回字符串
public String ReadFile(String path){
??? File file = new File(path);
??? BufferedReader reader = null;
??? String laststr = "";
??? try {
???? //System.out.println("以行为单位读取文件内容,一次读一整行:");
???? reader = new BufferedReader(new FileReader(file));
???? String tempString = null;
???? int line = 1;
???? //一次读入一行,直到读入null为文件结束
???? while ((tempString = reader.readLine()) != null) {
????? //显示行号
????? System.out.println("line " line ": " tempString);
????? laststr = laststr tempString;
????? line ;
???? }
???? reader.close();
??? } catch (IOException e) {
???? e.printStackTrace();
??? } finally {
???? if (reader != null) {
????? try {
?????? reader.close();
????? } catch (IOException e1) {
????? }
???? }
??? }
??? return laststr;
}
???????? //把json格式的字符串写到文件
public void writeFile(String filePath, String sets) throws IOException {
??? FileWriter fw = new FileWriter(filePath);
??? PrintWriter out = new PrintWriter(fw);
??? out.write(sets);
??? out.println();
??? fw.close();
??? out.close();
?? }
4.调用,使用(在网站的controller里调用的)
//取出json对象
public void GetElectSettings(HttpServletRequest request,
??? HttpServletResponse response) throws Exception {
?? ElectSet electset=new ElectSet();
?? String absPath = request.getRealPath("\");
?? String filePath = absPath "public\sets\electSets.json";
?? electset=businessService.findElectSets(filePath);//这里是调用,大家自己改改,我调用的业务层的。
?? JSONArray jsonItems = new JSONArray();
?? jsonItems.add(electset);
?? JSONObject jo=new JSONObject();
?? jo.put("data", jsonItems);
?? System.out.println(jo);
?? request.setCharacterEncoding("utf-8");
?? response.setContentType("application/json;charset=utf-8");
?? PrintWriter out = response.getWriter();
?? out.print(jo);
}
//修改json文件
public void ChangeElectSet(HttpServletRequest request,
??? HttpServletResponse response) throws Exception {
?? request.setCharacterEncoding("UTF-8");
?? response.setContentType("text/json;charset=utf-8");
?? log.info("reach ChangeElectSet");
?? String json = (String) request.getParameter("json").trim();
?? log.info("Change ElectSet");
?? log.info(json);
?? ElectSet sets = new ElectSet();
?? JSONObject jsonObject = JSONObject.fromObject(json);
?? sets = (ElectSet) JSONObject.toBean(jsonObject, ElectSet.class);
?? if(sets.getIsReadDB()=="false"){
??? sets.setIsReadDB("否");
?? }
?? else{
??? sets.setIsReadDB("是");
?? }
?? String changes="{"xuenian":"";//因为json的属性要用引号,所以要用"转义一下
?? changes =sets.getXuenian() "","xueqi":"" sets.getXueqi() "","startTime":"" sets.getStartTime() "","endTime":"" sets.getEndTime() "","menshu":"" sets.getMenshu() "","isReadDB":"" sets.getIsReadDB() ""}";
?? System.out.println(changes);
?? String absPath = request.getRealPath("\");
?? String filePath = absPath "public\sets\electSets.json";
详细解决方案
Java 读写json格式的资料方法详解
热度:250 发布时间:2013-01-26 13:47:02.0
相关解决方案
- java 乱码 汉字是 ? 如何转换成汉字
- (Struts2+JSON+Ajax) XMLHttpRequest ==500如何解决
- java web 登录次数限制,该如何解决
- json 解析有关问题
- java 工商银行网银支付 B2B的 都亟需什么,需要注意什么
- Java Applet程序从JDK6升级到7时遇到的有关问题
- java web 视频相干
- 请教一个关于链接后缀的有关问题(java web 应用)
- java 系统单点登录解决方案
- java.lang.NumberFormatException: For input string: "id"该如何处理
- java.lang.NoSuchMethodException: setId([Ljava.lang.String;)解决方法
- java 获取客户端IP解决办法
- JAVA 后台怎么获得前台页面FCKedit编辑器中的内容以及内容的样式
- java 正则化匹配有关问题
- java web 受阻
- java.lang.IllegalStateException: No output folder,该怎么解决
- struts2-json中诠注@JSON(deserialize=false)是什么用?不是阻止JSON反序列化成JAVA对象吗?求解
- java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.makeAccess,该如何解决
- java 乱码有关问题 急求大神
- java EE错误如何解决阿,都是过了,没有能解决的!
- java 工程打包有关问题 多谢各位大神!多谢
- JAVA WEB导航条,该怎么处理
- java.sql.SQLException: Access denied for user 'root'@'localhost' (using password,该如何处理
- java 中Node 有关问题
- 关于 java 引述传递和值传递,你的知否
- 吐了,java Timer 终止不了。
- Java Web 学习中有关问题,请高手指教
- java web中的url地址小疑点。
- java web开发解决办法
- java.lang.NullPointerException解决方法