生活随笔
收集整理的這篇文章主要介紹了
JSON javascript 使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://www.iteye.com/topic/71343
JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。 JSON 是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON 數據不需要任何特殊的 API 或工具包。
JSON的規則很簡單: 對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。具體細節參考http://www.json.org/json-zh.html
舉個簡單的例子:
js 代碼
function?showJSON()?{ ??????var?user?=? ??????{? ??????????"username":"andy", ??????????"age":20, ??????????"info":?{?"tel":?"123456",?"cellphone":?"98765"}, ??????????"address": ??????????????[ ??????????????????{"city":"beijing","postcode":"222333"}, ??????????????????{"city":"newyork","postcode":"555666"} ??????????????] ??????} ?????? ??????alert(user.username); ??????alert(user.age); ??????alert(user.info.cellphone); ??????alert(user.address[0].city); ??????alert(user.address[0].postcode); ??} ?? 這表示一個user對象,擁有username, age, info, address 等屬性。
同樣也可以用JSON來簡單的修改數據,修改上面的例子
js 代碼
function?showJSON()?{ ??????var?user?=? ??????{? ??????????"username":"andy", ??????????"age":20, ??????????"info":?{?"tel":?"123456",?"cellphone":?"98765"}, ??????????"address": ??????????????[ ??????????????????{"city":"beijing","postcode":"222333"}, ??????????????????{"city":"newyork","postcode":"555666"} ??????????????] ??????} ?????? ??????alert(user.username); ??????alert(user.age); ??????alert(user.info.cellphone); ??????alert(user.address[0].city); ??????alert(user.address[0].postcode); ?????? ??????user.username?=?"Tom"; ??????alert(user.username); ??} ?? ?JSON提供了json.js包,下載http://www.json.org/json.js 后,將其引入然后就可以簡單的使用object.toJSONString()轉換成JSON數據。
js 代碼
function?showCar()?{ ??????var?carr?=?new?Car("Dodge",?"Coronet?R/T",?1968,?"yellow"); ??????alert(carr.toJSONString()); ??} ????function?Car(make,?model,?year,?color)???????{ ???????this.make??=??make; ???????this.model??=??model; ???????this.year??=??year; ???????this.color??=??color; ??} ?? 可以使用eval來轉換JSON字符到Object
js 代碼
function?myEval()?{ ??????var?str?=?'{?"name":?"Violet",?"occupation":?"character"?}'; ??????var?obj?=?eval('('?+?str?+?')'); ??????alert(obj.toJSONString()); ??} ?? 或者使用parseJSON()方法
js 代碼
function?myEval()?{ ??????var?str?=?'{?"name":?"Violet",?"occupation":?"character"?}'; ??????var?obj?=?str.parseJSON(); ??????alert(obj.toJSONString()); ??} ?? 下面使用prototype寫一個JSON的ajax例子。
先寫一個servlet (我的是servlet.ajax.JSONTest1.java)就寫一句話 java 代碼
response.getWriter().print("{?\"name\":?\"Violet\",?\"occupation\":?\"character\"?}");?? 再在頁面中寫一個ajax的請求
js 代碼
function?sendRequest()?{ ??????var?url?=?"/MyWebApp/JSONTest1"; ??????var?mailAjax?=?new?Ajax.Request( ??????????url, ??????????{ ??????????????method:?'get', ??????????????onComplete:?jsonResponse ??????????} ??????); ??} ????function?jsonResponse(originalRequest)?{ ??????alert(originalRequest.responseText); ??????var?myobj?=?originalRequest.responseText.parseJSON(); ??????alert(myobj.name); ??} ?? prototype-<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.5.1</st1:chsdate>.js中提供了JSON的方法,String.evalJSON(), 可以不使用json.js, 修改上面的方法
js 代碼
function?jsonResponse(originalRequest)?{ ??????alert(originalRequest.responseText); ??????var?myobj?=?originalRequest.responseText.evalJSON(true); ??????alert(myobj.name); ??} ?? JSON還提供了java的jar包 http://www.json.org/java/index.html API也很簡單,下面舉個例子
在javascript中填加請求參數
js 代碼
function?sendRequest()?{ ??????var?carr?=?new?Car("Dodge",?"Coronet?R/T",?1968,?"yellow"); ??????var?pars?=?"car="?+?carr.toJSONString(); ????????var?url?=?"/MyWebApp/JSONTest1"; ??????var?mailAjax?=?new?Ajax.Request( ??????????url, ??????????{ ??????????????method:?'get', ??????????????parameters:?pars, ??????????????onComplete:?jsonResponse ??????????} ??????); ??} ?? 使用JSON請求字符串就可以簡單的生成JSONObject并進行解析,修改servlet添加JSON的處理(要使用json.jar)
java 代碼
private?void?doService(HttpServletRequest?request,?HttpServletResponse?response)?throws?IOException?{ ??????????String?s3?=?request.getParameter("car"); ??????????try?{ ??????????????JSONObject?jsonObj?=?new?JSONObject(s3); ??????????????System.out.println(jsonObj.getString("model")); ??????????????System.out.println(jsonObj.getInt("year")); ??????????}?catch?(JSONException?e)?{ ??????????????e.printStackTrace(); ??????????} ??????????response.getWriter().print("{?\"name\":?\"Violet\",?\"occupation\":?\"character\"?}"); ??????} ?? 同樣可以使用JSONObject生成JSON字符串,修改servlet
java 代碼
private?void?doService(HttpServletRequest?request,?HttpServletResponse?response)?throws?IOException?{ ??????????String?s3?=?request.getParameter("car"); ??????????try?{ ??????????????JSONObject?jsonObj?=?new?JSONObject(s3); ??????????????System.out.println(jsonObj.getString("model")); ??????????????System.out.println(jsonObj.getInt("year")); ??????????}?catch?(JSONException?e)?{ ??????????????e.printStackTrace(); ??????????} ?????????? ??????????JSONObject?resultJSON?=?new?JSONObject(); ??????????try?{ ??????????????resultJSON.append("name",?"Violet") ????????????????????????.append("occupation",?"developer") ????????????????????????.append("age",?new?Integer(22)); ??????????????System.out.println(resultJSON.toString()); ??????????}?catch?(JSONException?e)?{ ??????????????e.printStackTrace(); ??????????} ??????????response.getWriter().print(resultJSON.toString()); ??????} ?? js 代碼
function?jsonResponse(originalRequest)?{ ??????alert(originalRequest.responseText); ??????var?myobj?=?originalRequest.responseText.evalJSON(true); ??????alert(myobj.name); ??????alert(myobj.age); ??}?? 參考
http://www.json.org/js.html
http://www.blogjava.net/Jkallen/archive/2006/03/28/37905.html
http://www.json.org/
http://www.prototypejs.org/learn/json
http://www.json.org/java/index.html
http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/index.html
?
總結
以上是生活随笔為你收集整理的JSON javascript 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。