JSON定義法使用的輕便的數據交換形式。采用AJax技術,使用JSON來交換數據,最近用了一下這種方式,真是不錯,比以前使用XML格式方便多了。少去了服務器端使用jdom,dom4j等jar包創建XML數據的過程,在客戶端也不再需要使用那極其難用的COM API來解析XML。
客戶端使用Javascript解析滿足json格式要求的字符串,十分容易,只要使用eval函數就可以了。不過有個技巧,就是要在字符串兩端加上括號。那麼在服務器端,如何方便快捷的生成JSON 表示數據要求的字符串呢。好象有現成的jar包工具可供使用。但實際上這個工作是非常簡單的。我自己寫了一個簡單的工具類,支持多種數據類型,支持JSON嵌套。很簡單,相信大家一看就知道了。
JSON(Javascript Object Notation)是一種優美的JavaScript對象創建方法。JSON也是一種輕量級數據交換格式。JSON 表示數據非常易於人閱讀與編寫,同時利於機器解析與生成。JSON是在AJax中代替XML交換數據的更佳方案。
猴子提示: JSON定義法類似於直接定義法,JSON定義法就是將直接定義法定義的函數與屬性放到大括號中,並且去掉屬性與函數簽名的對象名,把等於號改為了冒號,每行後面改為逗號!
上面介紹了如何用 JSON 表示數據,接下來,我們還要解決如何在服務器端生成 JSON 格式的數據以便發送到客戶端,以及客戶端如何使用 JavaScript 處理 JSON 格式的數據。
JSON 表示數據代碼如下:
- static String string2JSon(String s) {
- StringBuilder sb = new StringBuilder(s.length()+20);
- sb.append('\"'); for (int i=0; i<s.length(); i++) {
- char c = s.charAt(i); switch (c) { case '\"':
- sb.append("\\\""); break; case '\\':
- sb.append("\\\\"); break; case '/':
- sb.append("\\/");
- break; case '\b': sb.append("\\b");
- break; case '\f': sb.append("\\f"); break;
- case '\n': sb.append("\\n"); break; case '\r':
- sb.append("\\r"); break; case '\t': sb.append("\\t");
- break; default: sb.append(c); } } sb.append('\"');
- return sb.toString(); }