<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java 讀寫json格式的文件方法詳解

    一、要解決這個問題首先要知道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";

    posted on 2012-05-19 09:09 youngturk 閱讀(1443) 評論(0)  編輯  收藏 所屬分類: Ajax

    <2012年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    公告

    this year :
    1 jQuery
    2 freemarker
    3 框架結構
    4 口語英語

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    EJB學習

    Flex學習

    learn English

    oracle

    spring MVC web service

    SQL

    Struts

    生活保健

    解析文件

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲福利在线视频| 久久被窝电影亚洲爽爽爽| 亚洲日本视频在线观看| 久久综合九色综合97免费下载| 久久影院亚洲一区| 亚洲第一视频在线观看免费| 久久精品国产精品亚洲| 免费无码av片在线观看| 亚洲AV日韩精品久久久久| 久久aⅴ免费观看| 亚洲综合在线成人一区| 无遮免费网站在线入口| 国产成人精品日本亚洲专区6| 免费无码又爽又刺激高潮| 色偷偷尼玛图亚洲综合| 国产精品亚洲精品日韩已方 | 精品国产免费一区二区| 国产精品亚洲综合天堂夜夜| 亚洲人午夜射精精品日韩| a级毛片毛片免费观看久潮| 91情国产l精品国产亚洲区| 97性无码区免费| 亚洲A∨精品一区二区三区下载 | 波多野结衣中文一区二区免费| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 亚洲白色白色永久观看| 毛片a级毛片免费播放100| 免费亚洲视频在线观看| 亚洲午夜福利AV一区二区无码| 免费无码VA一区二区三区| 2019亚洲午夜无码天堂| 亚洲色图综合在线| 91福利免费视频| 亚洲AV无码国产一区二区三区 | 亚洲精品tv久久久久| 男人j进入女人j内部免费网站| 久久亚洲最大成人网4438| 亚洲爽爽一区二区三区| 91免费国产自产地址入| 一级毛片视频免费观看| 亚洲人成电影在线观看青青|