生活随笔
收集整理的這篇文章主要介紹了
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寫一個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-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学习一的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。