日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSON学习一

發布時間:2024/8/5 javascript 109 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSON学习一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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寫一個JSONajax例子。

    先寫一個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-1.5.1.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

    轉載于:https://www.cnblogs.com/goody9807/archive/2007/12/13/991265.html

    總結

    以上是生活随笔為你收集整理的JSON学习一的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。