springMVC框架下JQuery傳遞并解析Json數(shù)據(jù)_第1頁(yè)
springMVC框架下JQuery傳遞并解析Json數(shù)據(jù)_第2頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

springMVC框架下JQuery傳遞并解析Json數(shù)據(jù)json作為一種輕量級(jí)的數(shù)據(jù)交換格式,在前后臺(tái)數(shù)據(jù)交換中占據(jù)著非常重要的地位。Json的語(yǔ)法非常簡(jiǎn)單,采用的是鍵值對(duì)表示形式。JSON可以將JavaScript對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從Web客戶機(jī)傳遞給服務(wù)器端程序,也可以從服務(wù)器端程序傳遞json格式的字符串給前端并由前端解釋。這個(gè)字符串是符合json語(yǔ)法的,而json語(yǔ)法又是javascript語(yǔ)法的子集,所以javascript很容易解釋它,而且JSON可以表示比"名稱/值對(duì)"更復(fù)雜的結(jié)構(gòu)。下面我們通過(guò)實(shí)例來(lái)看看JQuery傳遞/解析json格式的數(shù)據(jù)是如何實(shí)現(xiàn)的。1.首先來(lái)看前端jsp代碼:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><scripttype="text/javascript"src="/springMVC6/js/jquery-1.7.2.js"></script><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Inserttitlehere</title><scripttype="text/javascript"〉$(document).readyfunction(){//傳遞字符串格式j(luò)son對(duì)象到后臺(tái)(一個(gè)json對(duì)象)$"#resolveJsonObject").click(function(){varuserName=encodeURI($("#userName").attr("value"));varage=encodeURI($("#age").attr("value"));varuser={userName:userName,age:age};varaMenu=encodeURI(JSON.stringify(user));$.ajax({url:"/springMVC6/user/data/resolveJson0bject",data:"orderJson="+aMenu,success:function(data){}});});//傳遞json數(shù)組到后臺(tái)$"#resolveJsonArray").click(function(){varuserName=encodeURI($("#userName").attr("value"));varage=encodeURI($("#age").attr("value"));//數(shù)組開始varuserl={userName:userName,age:age};varallMenu={"menu":[]};allMenu.menu.push(user1);varallMenu1=encodeURI(JSON.stringify(allMenu));$.ajax({//json數(shù)組url:"/springMVC6/user/data/resolveJsonArray",data:"orderJson="+allMenu1,success:function(data){}});});//接收后臺(tái)的json在前臺(tái)解析$"#resolveJson").click(function(){$.ajax({//解析從后臺(tái)返回的json數(shù)據(jù)url:"/springMVC6/user/data/resolveJson",type:"post",success:function(data){vararr=eval(data);alert(arr.length);for(varm=O;m<arr.length;m++){alert(arr[m].user.userName);}}});});});</script></head><body><h1>json添加用戶</h1〉姓名:<inputid="userName"type="text"name="userName"〉年齡:<inputid="age"type="text"name="age"〉<br〉<inputtype="button"id="resolveJsonObject"value="json對(duì)象"〉<inputtype="button"id="resolveJsonArray"value="json數(shù)組"〉<inputtype="button"id="resolveJson"value="前端解析json字符串"〉</body〉</html〉2.使用javabean解析前端數(shù)據(jù):importjava.io.IOException;.URLDecoder;importjava.util.ArrayList;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importcom.tgb.web.controller.entity.User;@Controller@RequestMapping("/user/data")publicclassDataController{//接收前臺(tái)傳過(guò)來(lái)的字符串格式的json對(duì)象,在后臺(tái)進(jìn)行解析@RequestMapping("/resolveJsonObject")publicvoidresolveJsonObject(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{//解碼Stringstr=URLDecoder.decode(request.getParameter("orderJson"),"UTF-8");JSONObjectjb=newJSONObject();//將json格式的字符串轉(zhuǎn)換為json對(duì)象,并取得該對(duì)象的“userName”屬性值Stringo=(String)jb.fromObject(str).ge"userName");System.out.println(o);}//傳遞json數(shù)組字符串@RequestMapping("/resolveJsonArray")publicvoidresolveJsonArray(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{//解碼,為了解決中文亂碼Stringstr=URLDecoder.decode(request.getParameter("orderJson"),"UTF-8");JSONObjectjb=newJSONObject();//將json格式的字符串轉(zhuǎn)換為json數(shù)組對(duì)象JSONArrayarray=(JSONArray)jb.fromObject(str).get("menu");//取得json數(shù)組中的第一個(gè)對(duì)象JSONObjecto=(JSONObject)array.get(O);//獲得第一個(gè)array結(jié)果//取出json數(shù)組中第一個(gè)對(duì)象的“userName”屬性值Stringname=o.get"userName").toString();//獲得屬性值System.out.println(name);}//通過(guò)該函數(shù)返回json格式的數(shù)據(jù),在前臺(tái)通過(guò)JQuery進(jìn)行解析@RequestMapping("/resolveJson")publicvoidresolveJson(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{Listm=(List)newArrayList();JSONArrayjsons=newJSONArray();for(inti=0;i<10;i++){UserusernewUser();user.setUserName("name_"+i);m.add(user);}for(intj=0;j<m.size();j++){JSONObjectjsonObject=newJSONObject();jsonObject.put("user",m.get(j));jsons.add(jsonObject);}response.getWriter().print(jsons.toString());}@RequestMapping("/toJson")publicStringtoJson(){return"/json";}}json的作用并不僅僅在于作為字符串在前后臺(tái)進(jìn)行傳遞,我們采用json傳遞數(shù)據(jù)的時(shí)候更主要的考慮到的是它的傳輸效率。當(dāng)兩個(gè)系統(tǒng)需要進(jìn)行數(shù)據(jù)交換的時(shí)候,如果傳遞的是經(jīng)過(guò)序

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論