成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

基于$.ajax()方法從服務器獲取json數(shù)據(jù)的幾種方式總結(jié)-創(chuàng)新互聯(lián)

一.什么是json

金秀網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

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

json就是一串字符串,使用下面的符號標注。

{鍵值對} : json對象

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

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

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

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

$.ajax()方法中dataType屬性要求為String類型的參數(shù),預期服務器返回的數(shù)據(jù)類型。如果不指定,JQuery將自動根據(jù)http包mime信息返回responseXML或responseText【在第三部分解釋】,并作為回調(diào)函數(shù)參數(shù)傳遞??捎玫念愋腿缦拢?/p>

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

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

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

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

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

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

什么是MIME類型?在把輸出結(jié)果傳送到瀏覽器上的時候,瀏覽器必須啟動適當?shù)膽贸绦騺硖幚磉@個輸出文檔。這可以通過多種類型MIME(多功能網(wǎng)際郵件擴充協(xié)議)來完成。在HTTP中,MIME類型被定義在Content-Type header中。

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

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

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

常見的MIME類型:

超文本標記語言文本 .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

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

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

Content-type: text/html

注意,第二行為一個空行,這是必須的,使用這個空行的目的是將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)不同的程序嵌入模塊來處理相應的數(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ù)

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

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

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

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

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

//Java代碼:后臺獲取單個數(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":"運行","ball":"鎖緊",....},{"time":"2016-11-11 10:00:05","state":"運行","ball":"鎖緊",....},{},{}....]查到幾條singleHistoryData對象就打印幾個對象的信息{"time":"2016-11-11 10:00:05","state":"運行","ball":"鎖緊",....}
		response.getWriter().print(JSONArray.fromObject(singleHistoryData).toString());
	}

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前文章:基于$.ajax()方法從服務器獲取json數(shù)據(jù)的幾種方式總結(jié)-創(chuàng)新互聯(lián)
本文路徑:http://jinyejixie.com/article30/decgso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、App開發(fā)、小程序開發(fā)關(guān)鍵詞優(yōu)化、虛擬主機、面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
夏邑县| 博野县| 金沙县| 镇平县| 金阳县| 普定县| 牙克石市| 尤溪县| 烟台市| 临清市| 红原县| 云安县| 仲巴县| 北安市| 无棣县| 仲巴县| 绥棱县| 绥江县| 乐东| 东明县| 延长县| 财经| 浮梁县| 西林县| 贵南县| 筠连县| 武山县| 临清市| 富宁县| 东丰县| 阳江市| 长武县| 会东县| 山阳县| 平舆县| 湖北省| 阿坝县| 宜都市| 通州市| 昌江| 土默特左旗|