<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié)

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:20:23
        文檔

        基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié)

        基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié):一.什么是json json是一種取代xml的數(shù)據(jù)結(jié)構(gòu),和xml相比,它更小巧但描述能力卻很強(qiáng),網(wǎng)絡(luò)傳輸數(shù)據(jù)使用流量更少,速度更快。 json就是一串字符串,使用下面的符號標(biāo)注。 {鍵值對} : json對象 [{},{},{}] :json數(shù)組 :雙引號內(nèi)是屬性或值 : :冒
        推薦度:
        導(dǎo)讀基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié):一.什么是json json是一種取代xml的數(shù)據(jù)結(jié)構(gòu),和xml相比,它更小巧但描述能力卻很強(qiáng),網(wǎng)絡(luò)傳輸數(shù)據(jù)使用流量更少,速度更快。 json就是一串字符串,使用下面的符號標(biāo)注。 {鍵值對} : json對象 [{},{},{}] :json數(shù)組 :雙引號內(nèi)是屬性或值 : :冒

        一.什么是json

        json是一種取代xml的數(shù)據(jù)結(jié)構(gòu),和xml相比,它更小巧但描述能力卻很強(qiáng),網(wǎng)絡(luò)傳輸數(shù)據(jù)使用流量更少,速度更快。

        json就是一串字符串,使用下面的符號標(biāo)注。

        {鍵值對} : json對象

        [{},{},{}] :json數(shù)組

        "" :雙引號內(nèi)是屬性或值

        : :冒號前為鍵,后為值(這個(gè)值可以是基本數(shù)據(jù)類型的值,也可以是數(shù)組或?qū)ο螅?{"age": 18} 可以理解為是一個(gè)包含age為18的json對象,而[{"age": 18},{"age": 20}]就表示包含兩個(gè)對象的json數(shù)組。也可以使用{"age":[18,20]}來簡化上面的json數(shù)組,這是一個(gè)擁有一個(gè)age數(shù)組的對象。

        二.$.ajax()方法中dataType屬性的取值

        $.ajax()方法中dataType屬性要求為String類型的參數(shù),預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,JQuery將自動(dòng)根據(jù)http包mime信息返回responseXML或responseText【在第三部分解釋】,并作為回調(diào)函數(shù)參數(shù)傳遞。可用的類型如下:

        xml:返回XML文檔,可用JQuery處理。

        html:返回純文本HTML信息;包含的script標(biāo)簽會(huì)在插入DOM時(shí)執(zhí)行。

        script:返回純文本JavaScript代碼。不會(huì)自動(dòng)緩存結(jié)果。除非設(shè)置了cache參數(shù)。注意在遠(yuǎn)程請求時(shí)(不在同一個(gè)域下),所有post請求都將轉(zhuǎn)為get請求。

        json:返回JSON數(shù)據(jù)。

        jsonp:JSONP格式。使用SONP形式調(diào)用函數(shù)時(shí),例如myurl?callback=?,JQuery將自動(dòng)替換后一個(gè)“?”為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。

        三.Mime數(shù)據(jù)類型及response的setContentType()方法

        什么是MIME類型?在把輸出結(jié)果傳送到瀏覽器上的時(shí)候,瀏覽器必須啟動(dòng)適當(dāng)?shù)膽?yīng)用程序來處理這個(gè)輸出文檔。這可以通過多種類型MIME(多功能網(wǎng)際郵件擴(kuò)充協(xié)議)來完成。在HTTP中,MIME類型被定義在Content-Type header中。

        例 如,架設(shè)你要傳送一個(gè)Microsoft Excel文件到客戶端。那么這時(shí)的MIME類型就是“application/vnd.ms-excel”。在大多數(shù)實(shí)際情況中,這個(gè)文件然后將傳送給 Execl來處理(假設(shè)我們設(shè)定Execl為處理特殊MIME類型的應(yīng)用程序)。在Java中,設(shè)定MIME類型的方法是通過Response對象的ContentType屬性。比如常用:response.setContentType("text/html;charset=UTF-8")進(jìn)行設(shè)置。

        最早的HTTP協(xié)議中,并沒有附加的數(shù)據(jù)類型信息,所有傳送的數(shù)據(jù)都被客戶程序解釋為超文本標(biāo)記語言HTML 文檔,而為了支持多媒體數(shù)據(jù)類型,HTTP協(xié)議中就使用了附加在文檔之前的MIME數(shù)據(jù)類型信息來標(biāo)識數(shù)據(jù)類型。

        每個(gè)MIME類型由兩部分組成,前面是數(shù)據(jù)的大類別,例如文本text、圖象image等,后面定義具體的種類。

        常見的MIME類型:

        超文本標(biāo)記語言文本 .html,.html text/html

        普通文本 .txt text/plain

        RTF文本 .rtf application/rtf

        GIF圖形 .gif image/gif

        JPEG圖形 .ipeg,.jpg image/jpeg

        au聲音文件 .au audio/basic

        MIDI音樂文件 mid,.midi audio/midi,audio/x-midi

        RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio

        MPEG文件 .mpg,.mpeg video/mpeg

        AVI文件 .avi video/x-msvideo

        GZIP文件 .gz application/x-gzip

        TAR文件 .tar application/x-tar

        客戶程序從服務(wù)器上接收數(shù)據(jù)的時(shí)候,它只是從服務(wù)器接受數(shù)據(jù)流,并不了解文檔的名字,因此服務(wù)器必須使用附加信息來告訴客戶程序數(shù)據(jù)的MIME類型。

        服務(wù)器在發(fā)送真正的數(shù)據(jù)之前,就要先發(fā)送標(biāo)志數(shù)據(jù)的MIME類型的信息,這個(gè)信息使用Content-type關(guān)鍵字進(jìn)行定義,例如對于HTML文檔,服務(wù)器將首先發(fā)送以下兩行MIME標(biāo)識信息,這個(gè)標(biāo)識并不是真正的數(shù)據(jù)文件的一部分。

        Content-type: text/html

        注意,第二行為一個(gè)空行,這是必須的,使用這個(gè)空行的目的是將MIME信息與真正的數(shù)據(jù)內(nèi)容分隔開。

        如前面所說,在Java中,設(shè)定MIME類型的方法是通過Response對象的ContentType屬性,設(shè)置的方法是使用response.setContentType(MIME)語句,response.setContentType(MIME)的作用是使客戶端瀏覽器,區(qū)分不同種類的數(shù)據(jù),并根據(jù)不同的MIME調(diào)用瀏覽器內(nèi)不同的程序嵌入模塊來處理相應(yīng)的數(shù)據(jù)。

        Tomcat的安裝目錄\conf\web.xml中就定義了大量MIME類型 ,可以參考。比如可以設(shè)置:

        response.setContentType("text/html; charset=utf-8"); html

        response.setContentType("text/plain; charset=utf-8"); 文本

        application/json json數(shù)據(jù)

        這個(gè)方法設(shè)置發(fā)送到客戶端的響應(yīng)的內(nèi)容類型,此時(shí)響應(yīng)還沒有提交。給出的內(nèi)容類型可以包括字符編碼說明,例如:text/html;charset=UTF-8。如果該方法在getWriter()方法被調(diào)用之前調(diào)用,那么響應(yīng)的字符編碼將僅從給出的內(nèi)容類型中設(shè)置。該方法如果在getWriter()方法被調(diào)用之后或者在被提交之后調(diào)用,將不會(huì)設(shè)置響應(yīng)的字符編碼,在使用http協(xié)議的情況中,該方法設(shè)置 Content-type實(shí)體報(bào)頭。

        四.使用$.ajax()方法獲取json數(shù)據(jù)的三種方式

        dataType參數(shù)的配置決定了jquery如何幫助我們自動(dòng)解析服務(wù)器返回的數(shù)據(jù),有幾種方式可以獲取后臺返回的json字符串并解析為json對象,下面是Java為例解釋,下面三中方式的結(jié)果都是圖一所示,項(xiàng)目運(yùn)行在內(nèi)網(wǎng),無法截圖,只能拍照,見諒。

        1、$.ajax()參數(shù)中不設(shè)置dataType,后臺response也不設(shè)置返回類型,則默認(rèn)會(huì)以普通文本處理【response.setContentType("text/html;charset=utf-8");也是作為文本處理】,js中需要手動(dòng)使用eval()或$.parseJSON()等方法將返回的字符串轉(zhuǎn)換為json對象使用。

        //Java代碼:后臺獲取單個(gè)數(shù)控定位器的歷史表格的數(shù)據(jù)
        	public void getHistorySingleData() throws IOException{
        	HttpServletRequest request = ServletActionContext.getRequest();
        	HttpServletResponse response = ServletActionContext.getResponse();
        	response.setHeader("Content-type", "text/html;charset=UTF-8");
        	response.setContentType("text/html;charset=utf-8");
        	String deviceName = request.getParameter("deviceName");
        	String startDate= request.getParameter("startDate");
        	String endDate = request.getParameter("endDate");
        	SingleHistoryData[] singleHistoryData = chartService.getHistorySingleData(deviceName,startDate, endDate);
        	System.out.println(singleHistoryData.length);
        	System.out.println(JSONArray.fromObject(singleHistoryData).toString());//打印:[{"time":"2016-11-11 10:00:00","state":"運(yùn)行","ball":"鎖緊",....},{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....},{},{}....]查到幾條singleHistoryData對象就打印幾個(gè)對象的信息{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....}
        	response.getWriter().print(JSONArray.fromObject(singleHistoryData).toString());
        	}
        	/*js代碼:選擇查詢某一時(shí)間段的數(shù)據(jù),點(diǎn)擊查詢之后進(jìn)行顯示*/
         $("#search").click(function () {
         	var data1 = [];
         	var n;
         	var deviceName=$("body").attr("id"); 
         var startDate = $("#startDate").val();
         var endDate = $("#endDate").val();
         $.ajax({
         url:"/avvii/chart/getHistorySingleData",
         type:"post",
         data:{
         "deviceName":deviceName,
         "startDate": startDate,
         "endDate": endDate
         },
         success: function (data) {
         	 alert(data);//---->彈出[{"time":"2016-11-11 10:00:00","state":"運(yùn)行","ball":"鎖緊",....},{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....},{},{}....],后臺傳過來幾條singleHistoryData對象就打印幾個(gè)對象的信息{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....}
         	 alert(Object.prototype.toString.call(data)); //--->彈出[object String],說明獲取的是String類型的數(shù)據(jù)
         	 var JsonObjs = eval("(" + data + ")"); //或者:var JsonObjs = $.parseJSON(data);
         	 alert(JsonObjs);//alert(JsonObjs);---->彈出[object Object],[object Object],[object Object][object Object],[object Object],[object Object]……后臺傳過來幾條singleHistoryData對象就打印幾個(gè)[object Object]
         n=JsonObjs.length;
         if(n==0){
         	 alert("您選擇的時(shí)間段無數(shù)據(jù),請重新查詢");
         }
         	 for(var i = 0; i < JsonObjs.length; i++){	 
        	 	 var name = JsonObjs[i]['time'];//針對每一條數(shù)據(jù):JsonObjs[i],或者:JsonObjs[i].time
        	 	 var state = JsonObjs[i]['state'];
        	 	 var ball = JsonObjs[i]['ball'];
        	 	 var xd = JsonObjs[i]['xd'];
        	 	 var yd = JsonObjs[i]['yd'];
        	 	 var zd = JsonObjs[i]['zd'];
        	 	 var xf = JsonObjs[i]['xf'];
        	 	 var yf = JsonObjs[i]['yf'];
        	 	 var zf = JsonObjs[i]['zf'];
         data1[i] = {name:name,state:state,ball:ball,xd:xd,yd:yd,zd:zd,xf:xf,yf:yf,zf:zf};//個(gè)數(shù)與下面表頭對應(yīng)起來就可以了,至于叫什么名字并不影響控件的使用
         }
         	 if(JsonObjs.length != 10){
         	 for(var j=0;j<(10-((JsonObjs.length)%10));j++){ //補(bǔ)全最后一頁的空白行,使表格的長度保持不變
         	 data1[j+JsonObjs.length] = {name:" ",state:"",ball:"",xd:"",yd:"",zd:"",xf:"",yf:"",zf:""}; 
         	 }
         	 }
         var userOptions = {
         "id":"kingTable", 	//必須 表格id
         "head":["時(shí)間","運(yùn)行狀態(tài)","球頭狀態(tài)","X向位置/mm","Y向位置/mm","Z向位置/mm","X向承載力/Kg","Y向承載力/Kg","Z向承載力/Kg"], //必須 thead表頭
         "body":data1, 	//必須 tbody 后臺返回的數(shù)據(jù)展示
         "foot":true, 	// true/false 是否顯示tfoot --- 默認(rèn)false
         "displayNum": 10, 	//必須 默認(rèn) 10 每頁顯示行數(shù)
         "groupDataNum":6, 	//可選 默認(rèn) 10 組數(shù)
         sort:false, 	// 點(diǎn)擊表頭是否排序 true/false --- 默認(rèn)false
         search:false, 	// 默認(rèn)為false 沒有搜索
         lang:{
         gopageButtonSearchText:"搜索"
         }
         }
         var cs = new KingTable(null,userOptions);
         }
         }); 
         });

        2、$.ajax()參數(shù)中設(shè)置dataType="json",則jquery會(huì)自動(dòng)將返回的字符串轉(zhuǎn)化為json對象。后臺可以設(shè)置為:【推薦】response.setContentType("text/html;charset=utf-8");或者response.setContentType("application/json;charset=utf-8");

        	//Java代碼:后臺獲取單個(gè)數(shù)控定位器的歷史表格的數(shù)據(jù)
        	public void getHistorySingleData() throws IOException{
        	HttpServletRequest request = ServletActionContext.getRequest();
        	HttpServletResponse response = ServletActionContext.getResponse();
        	response.setHeader("Content-type", "text/html;charset=UTF-8");
        	response.setContentType("text/html;charset=utf-8");
        	String deviceName = request.getParameter("deviceName");
        	String startDate= request.getParameter("startDate");
        	String endDate = request.getParameter("endDate");
        	SingleHistoryData[] singleHistoryData = chartService.getHistorySingleData(deviceName,startDate, endDate);
        	System.out.println(singleHistoryData.length);
        	System.out.println(JSONArray.fromObject(singleHistoryData).toString());//打印:[{"time":"2016-11-11 10:00:00","state":"運(yùn)行","ball":"鎖緊",....},{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....},{},{}....]查到幾條singleHistoryData對象就打印幾個(gè)對象的信息{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....}
        	response.getWriter().print(JSONArray.fromObject(singleHistoryData).toString());
        	}
        /*js代碼:頁面首次加載時(shí),顯示規(guī)定時(shí)間段的數(shù)據(jù)*/ 
        	var data1 = [];
        	var deviceName=$("body").attr("id"); 
         var startDate = $("#startDate").val("2000-01-01 00:00:00");
         var endDate = $("#endDate").val("2018-01-01 00:00:00");
         $.ajax({
         url:"/avvii/chart/getHistorySingleData",
         type:"post",
         data:{
         "deviceName":deviceName,
         "startDate": "2000-01-01 00:00:00",
         "endDate": "2018-01-01 00:00:00"
         },
         dataType:"json",
         success: function (data) {
         	 alert(data);//---->彈出[object Object],[object Object],[object Object][object Object],[object Object],[object Object]……后臺傳過來幾條singleHistoryData對象就打印幾個(gè)json對象:[object Object]
         for(var i = 0; i < data.length; i++){	 
        	 	 var name = data[i]['time'];
        	 	 var state = data[i]['state'];
        	 	 var ball = data[i]['ball'];
        	 	 var xd = data[i]['xd'];
        	 	 var yd = data[i]['yd'];
        	 	 var zd = data[i]['zd'];
        	 	 var xf = data[i]['xf'];
        	 	 var yf = data[i]['yf'];
        	 	 var zf = data[i]['zf'];
         data1[i] = {name:name,state:state,ball:ball,xd:xd,yd:yd,zd:zd,xf:xf,yf:yf,zf:zf};
         }
        	 if(data.length != 10){
        	 for(var j=0;j<(10-((data.length)%10));j++){ //補(bǔ)全最后一頁的空白行,使表格的長度保持不變
        	 data1[j+data.length] = {name:" ",state:"",ball:"",xd:"",yd:"",zd:"",xf:"",yf:"",zf:""}; 
        	 }
        	 }
         var userOptions = {
         "id":"kingTable", 	//必須 表格id
         "head":["時(shí)間","運(yùn)行狀態(tài)","球頭狀態(tài)","X向位置/mm","Y向位置/mm","Z向位置/mm","X向承載力/Kg","Y向承載力/Kg","Z向承載力/Kg"], //必須 thead表頭
         "body":data1, 	//必須 tbody 后臺返回的數(shù)據(jù)展示
         "foot":true, 	// true/false 是否顯示tfoot --- 默認(rèn)false
         "displayNum": 10, 	//必須 默認(rèn) 10 每頁顯示行數(shù)
         "groupDataNum":6, 	//可選 默認(rèn) 10 組數(shù)
         sort:false, 	// 點(diǎn)擊表頭是否排序 true/false --- 默認(rèn)false
         search:false, 	// 默認(rèn)為false 沒有搜索
         lang:{
         gopageButtonSearchText:"搜索"
         }
         }
         var cs = new KingTable(null,userOptions);
         }
         }); 

        3、ajax方法參數(shù)中不指定dataType,后臺設(shè)置返回類型為"application/json"。這樣jquery就會(huì)根據(jù)mime類型來智能判斷,并自動(dòng)解析成json對象。

        	//Java代碼:后臺獲取單個(gè)數(shù)控定位器的歷史表格的數(shù)據(jù)
        	public void getHistorySingleData() throws IOException{
        	HttpServletRequest request = ServletActionContext.getRequest();
        	HttpServletResponse response = ServletActionContext.getResponse();
        	response.setHeader("Content-type", "text/html;charset=UTF-8");
        	response.setContentType("application/json;charset=utf-8");
        	String deviceName = request.getParameter("deviceName");
        	String startDate= request.getParameter("startDate");
        	String endDate = request.getParameter("endDate");
        	SingleHistoryData[] singleHistoryData = chartService.getHistorySingleData(deviceName,startDate, endDate);
        	System.out.println(singleHistoryData.length);
        	System.out.println(JSONArray.fromObject(singleHistoryData).toString());//打印:[{"time":"2016-11-11 10:00:00","state":"運(yùn)行","ball":"鎖緊",....},{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....},{},{}....]查到幾條singleHistoryData對象就打印幾個(gè)對象的信息{"time":"2016-11-11 10:00:05","state":"運(yùn)行","ball":"鎖緊",....}
        	response.getWriter().print(JSONArray.fromObject(singleHistoryData).toString());
        	}
         /*js代碼:頁面首次加載時(shí),顯示規(guī)定時(shí)間段的數(shù)據(jù)*/ 
        	var data1 = [];
        	var deviceName=$("body").attr("id"); 
         var startDate = $("#startDate").val("2000-01-01 00:00:00");
         var endDate = $("#endDate").val("2018-01-01 00:00:00");
         $.ajax({
         url:"/avvii/chart/getHistorySingleData",
         type:"post",
         data:{
         "deviceName":deviceName,
         "startDate": "2000-01-01 00:00:00",
         "endDate": "2018-01-01 00:00:00"
         },
         success: function (data) {
         	 alert(data);//---->彈出[object Object],[object Object],[object Object][object Object],[object Object],[object Object]……后臺傳過來幾條singleHistoryData對象就打印幾個(gè)json對象:[object Object]
         for(var i = 0; i < data.length; i++){	 
        	 	 var name = data[i]['time'];
        	 	 var state = data[i]['state'];
        	 	 var ball = data[i]['ball'];
        	 	 var xd = data[i]['xd'];
        	 	 var yd = data[i]['yd'];
        	 	 var zd = data[i]['zd'];
        	 	 var xf = data[i]['xf'];
        	 	 var yf = data[i]['yf'];
        	 	 var zf = data[i]['zf'];
         data1[i] = {name:name,state:state,ball:ball,xd:xd,yd:yd,zd:zd,xf:xf,yf:yf,zf:zf};
         }
        	 if(data.length != 10){
        	 for(var j=0;j<(10-((data.length)%10));j++){ //補(bǔ)全最后一頁的空白行,使表格的長度保持不變
        	 data1[j+data.length] = {name:" ",state:"",ball:"",xd:"",yd:"",zd:"",xf:"",yf:"",zf:""}; 
        	 }
        	 }
         var userOptions = {
         "id":"kingTable", 	//必須 表格id
         "head":["時(shí)間","運(yùn)行狀態(tài)","球頭狀態(tài)","X向位置/mm","Y向位置/mm","Z向位置/mm","X向承載力/Kg","Y向承載力/Kg","Z向承載力/Kg"], //必須 thead表頭
         "body":data1, 	//必須 tbody 后臺返回的數(shù)據(jù)展示
         "foot":true, 	// true/false 是否顯示tfoot --- 默認(rèn)false
         "displayNum": 10, 	//必須 默認(rèn) 10 每頁顯示行數(shù)
         "groupDataNum":6, 	//可選 默認(rèn) 10 組數(shù)
         sort:false, 	// 點(diǎn)擊表頭是否排序 true/false --- 默認(rèn)false
         search:false, 	// 默認(rèn)為false 沒有搜索
         lang:{
         gopageButtonSearchText:"搜索"
         }
         }
         var cs = new KingTable(null,userOptions);
         }
         }); 

        注意:只要前臺或者后臺有一處設(shè)置了返回json對象,就無需使用eval()方法或$.parseJSON()方法解析了,再解析就出錯(cuò)。

        總結(jié):以上幾種方式,推薦使用第二種方式,方便且不易出錯(cuò)。

        五.eval()方法

        var json對象=eval('('+json數(shù)據(jù)+')');大括號括起來的內(nèi)容被eval()執(zhí)行后返回的是一個(gè)JSON對象。

        eval函數(shù)的工作原理:eval函數(shù)會(huì)評估一個(gè)給定的含有JavaScript代碼的字符串,并且試圖去執(zhí)行包含在字符串里的表達(dá)式或者一系列的合法的JavaScript語句。eval函數(shù)將把最后一個(gè)表達(dá)式或者語句所包含的值或引用作為返回值。

        為什么要 eval這里要添加 “("("+data+")");//”呢?

        原因在于:eval本身的問題。 由于json是以”{}”的方式來開始以及結(jié)束的,在JS中,它會(huì)被當(dāng)成一個(gè)語句塊來處理,所以必須強(qiáng)制性的將它轉(zhuǎn)換成一種表達(dá)式。加上圓括號的目的是迫使eval函數(shù)在處理JavaScript代碼的時(shí)候強(qiáng)制將括號內(nèi)的表達(dá)式(expression)轉(zhuǎn)化為對象,而不是作為語句(statement)來執(zhí)行。舉一個(gè)例子,例如對象字面量{},如若不加外層的括號,那么eval會(huì)將大括號識別為JavaScript代碼塊的開始和結(jié)束標(biāo)記,那么{}將會(huì)被認(rèn)為是執(zhí)行了一句空語句。

        以上這篇基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié)

        基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié):一.什么是json json是一種取代xml的數(shù)據(jù)結(jié)構(gòu),和xml相比,它更小巧但描述能力卻很強(qiáng),網(wǎng)絡(luò)傳輸數(shù)據(jù)使用流量更少,速度更快。 json就是一串字符串,使用下面的符號標(biāo)注。 {鍵值對} : json對象 [{},{},{}] :json數(shù)組 :雙引號內(nèi)是屬性或值 : :冒
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日韩视频免费在线| 日韩吃奶摸下AA片免费观看| 免费a级毛片18以上观看精品| 国产亚洲精品a在线观看| 免费看一级高潮毛片| 四虎影永久在线高清免费| 亚洲精品国产suv一区88| 国产免费观看a大片的网站| 亚洲国产精品美女久久久久| 免费国产精品视频| 无码免费又爽又高潮喷水的视频| 亚洲精品国产自在久久 | 国产亚洲福利在线视频| 99在线视频免费观看视频| 亚洲va在线va天堂va手机| 好爽…又高潮了毛片免费看| 欧洲 亚洲 国产图片综合| 日韩在线免费看网站| 深夜福利在线视频免费| 亚洲伊人色欲综合网| 亚洲w码欧洲s码免费| 亚洲欧美国产精品专区久久| 亚洲av无码专区在线观看素人| 日韩少妇内射免费播放| 亚洲国产精品无码久久一区二区| 99热免费在线观看| 亚洲午夜国产精品| 国产嫩草影院精品免费网址| 青青操视频在线免费观看| 亚洲精品一区二区三区四区乱码| 成人五级毛片免费播放| 一区二区在线免费视频| 亚洲综合一区二区国产精品| 在线免费一区二区| 国产黄色片免费看| 亚洲中文无码a∨在线观看| 国产美女无遮挡免费视频| 免费观看一区二区三区| 亚洲AV无码无限在线观看不卡 | 亚洲va中文字幕无码久久不卡| 很黄很色很刺激的视频免费|