

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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的語法非常簡(jiǎn)單,采用的是鍵值對(duì)表示形式。JSON可以將JavaScript對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從Web客戶機(jī)傳遞給服務(wù)器端程序,也可以從服務(wù)器端程序傳遞json格式的字符串給前端并由前端解釋。這個(gè)字符串是符合json語法的,而json語法又是javascript語法的子集,所以javascript很容易解釋它,而且JSON可以表示比"名稱/值對(duì)"更復(fù)雜的結(jié)構(gòu)。下面我們通過實(shí)例來看看JQuery傳遞/解析json格式的數(shù)據(jù)是如何實(shí)現(xiàn)的。1.首先來看前端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)傳過來的字符串格式的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);}//通過該函數(shù)返回json格式的數(shù)據(jù),在前臺(tái)通過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)過序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 油脂管理制度
- 營(yíng)養(yǎng)學(xué)(師)考試歷年真題及答案
- 營(yíng)銷終端激勵(lì)方案
- 企業(yè)培訓(xùn)忠誠(chéng)課件
- 汽車零部件質(zhì)保及售后服務(wù)合同范本
- 車庫租賃及廣告位合作合同范本
- 橋梁電梯布置方案模板
- 綠色生態(tài)區(qū)個(gè)人商鋪?zhàn)赓U及環(huán)保要求合同
- 糞污設(shè)備安裝方案
- 高速鐵路拆除與路基改造施工服務(wù)合同
- 夫妻婚內(nèi)財(cái)產(chǎn)約定協(xié)議書范本(2025年)
- 信息技術(shù)設(shè)備互連 智能家居互聯(lián)互通 第1部分:架構(gòu)與要求 征求意見稿
- 2025年中醫(yī)師承合同范本文字
- 0-3歲嬰幼兒感覺統(tǒng)合訓(xùn)練知到智慧樹章節(jié)測(cè)試課后答案2024年秋杭州師范大學(xué)
- 抑酸藥課件教學(xué)課件
- 2024譯林版七年級(jí)英語上冊(cè)單詞(帶音標(biāo))
- 北師大版數(shù)學(xué)六年級(jí)上學(xué)期期中試卷
- 中風(fēng)腦梗死恢復(fù)期中醫(yī)護(hù)理方案課件
- 《細(xì)菌毒素》課件
- 校長(zhǎng)教職工大會(huì)講話材料
- 新生兒重癥監(jiān)護(hù)室母乳使用專家共識(shí)(2024版)解讀
評(píng)論
0/150
提交評(píng)論