當前位置:首頁 » 雲伺服器 » 伺服器返回數據是什麼格式

伺服器返回數據是什麼格式

發布時間: 2022-04-15 05:23:29

A. 怎麼解析從伺服器返回的json

json數據格式解析我自己分為兩種;
一種是普通的,一種是帶有數組形式的;
普通形式的:
伺服器端返回的json數據格式如下:

復制代碼代碼如下:

{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}

分析代碼如下:

復制代碼代碼如下:

// TODO 狀態處理 500 200
int res = 0;
res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
if (res == 200) {
/*
* 當返回碼為200時,做處理
* 得到伺服器端返回json數據,並做處理
* */
HttpResponse httpResponse = httpClient.execute(httpPost);
StringBuilder builder = new StringBuilder();
BufferedReader bufferedReader2 = new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent()));
String str2 = "";
for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
.readLine()) {
builder.append(s);
}
Log.i("cat", ">>>>>>" + builder.toString());

JSONObject jsonObject = new JSONObject(builder.toString())
.getJSONObject("userbean");
String Uid;
String Showname;
String Avtar;
String State;
Uid = jsonObject.getString("Uid");
Showname = jsonObject.getString("Showname");
Avtar = jsonObject.getString("Avtar");
State = jsonObject.getString("State");

帶數組形式的:
伺服器端返回的數據格式為:

復制代碼代碼如下:

{"calendar":
{"calendarlist":
[
{"calendar_id":"1705","title":"(\u4eb2\u5b50)ddssd","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false},
{"calendar_id":"1706","title":"(\u65c5\u884c)","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false}
]
}
}

分析代碼如下:

復制代碼代碼如下:

// TODO 狀態處理 500 200
int res = 0;
res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
if (res == 200) {
/*
* 當返回碼為200時,做處理
* 得到伺服器端返回json數據,並做處理
* */
HttpResponse httpResponse = httpClient.execute(httpPost);
StringBuilder builder = new StringBuilder();
BufferedReader bufferedReader2 = new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent()));
String str2 = "";
for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
.readLine()) {
builder.append(s);
}
Log.i("cat", ">>>>>>" + builder.toString());
/**
* 這里需要分析伺服器回傳的json格式數據,
*/
JSONObject jsonObject = new JSONObject(builder.toString())
.getJSONObject("calendar");
JSONArray jsonArray = jsonObject.getJSONArray("calendarlist");
for(int i=0;i<jsonArray.length();i++){
JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);
CalendarInfo calendarInfo = new CalendarInfo();
calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id"));
calendarInfo.setTitle(jsonObject2.getString("title"));
calendarInfo.setCategory_name(jsonObject2.getString("category_name"));
calendarInfo.setShowtime(jsonObject2.getString("showtime"));
calendarInfo.setEndtime(jsonObject2.getString("endshowtime"));
calendarInfo.setAllDay(jsonObject2.getBoolean("allDay"));
calendarInfos.add(calendarInfo);
}

總結,普通形式的只需用JSONObject ,帶數組形式的需要使用JSONArray 將其變成一個list。

B. 瀏覽器與伺服器之間傳送的請求和數據都是以什麼格式傳輸的(主要是想弄清楚json和xml和html的區別)

樓主您好
瀏覽器伺服器之間請求 json,xml都可以,json居多
區別,json和xml都是用來傳輸的,json優點是格式體積小,xml優點要少,可能看起來更容易(不一定)?
html完全不一樣,是瀏覽器解析的前台頁面展示的標簽元素的一種語言

C. java 、JQuery問題,$.ajax()、$.post()、$.get(),各在什麼情況下使用它們的區別

希望你能用的到
詳細解讀Jquery各Ajax函數:
$.get(),$.post(),$.ajax(),$.getJSON()
一,$.get(url,[data],[callback])
說明:url為請求地址,data為請求數據的列表,callback為請求成功後的回調函數,該函數接受兩個參數,第一個為伺服器返回的數據,第二個參數為伺服器的狀態,是可選參數。
而其中,伺服器返回數據的格式其實是字元串形勢,並不是我們想要的json數據格式,在此引用只是為了對比說明

復制代碼代碼如下:

$.get("data.php",$("#firstName.val()"),function(data){

$("#getResponse").html(data); }//返回的data是字元串類型
);

二,$.post(url,[data],[callback],[type])

說明:這個函數跟$.get()參數差不多,多了一個type參數,type為請求 的數據類型,可以是html,xml,json等類型,如果我們設置這個參數為:json,那麼返回的格式則是json格式的,如果沒有設置,就 和$.get()返回的格式一樣,都是字元串的

復制代碼代碼如下:

$.post("data.php",$("#firstName.val()"),function(data){

$("#postResponse").html(data.name);
},"json"//設置了獲取數據的類型,所以得到的數據格式為json類型的
);

三,$.ajax(opiton)

說明:$.ajax()這個函數功能強大,可以對ajax進行許多精確的控制,需要詳細說明的請參照相關資料

復制代碼代碼如下:

$.ajax({

url: "ajax/ajax_selectPicType.aspx",
data:{Full:"fu"},
type: "POST",
dataType:'json',
success:CallBack,
error:function(er){
BackErr(er);}
});

四,$.getJSON(url,[data],[callback])

復制代碼代碼如下:

$.getJSON("data.php",$("#firstName.val()"),function(jsonData){

$("#getJSONResponse").html(jsonData.id);}//無需設置,直接獲取的數據類型為json,
所以調用時需要使用jsonData.id方式
);

When Ajax meets jQuery 基於AJAX的應用現在越來越多,而對於前台開發人員來說,直接和底層的HTTPRequest打交道又不是一件令人愉快的事情。jQuery既然封裝了 JavaScript,肯定已經考慮過AJAX應用的問題。的確,如果用jQuery寫AJAX會比直接用JS寫方便N倍。(不知道用jQuery長了, 會不會喪失對JS的知識了……) 這里假設大家對jQuery語法已經比較熟悉,來對ajax的一些應用作一些總結。

載入靜態頁面
load( url, [data], [callback] );
url (String) 請求的HTML頁的URL地址
data (Map)(可選參數) 發送至伺服器的 key/value 數據
callback (Callback) (可選參數) 請求完成時(不需要是success的)的回調函數
load()方法可以輕松載入靜態頁面內容到指定jQuery對象。

復制代碼代碼如下:

$('#ajax-div').load('data.html');

這樣,data.html的內容將被載入到ID為ajax-div的DOM對象之內。你甚至可以通過制定ID來實現載入部分內容的Ajax操作,如:

復制代碼代碼如下:

$('#ajax-div').load('data.html#my-section');

實現GET和POST方法

get( url, [data], [callback] )
url (String) 發送請求的URL地址.
data (Map)(可選參數) 要發送給伺服器的數據,以 Key/value 的鍵值對形式表示,會做為QueryString附加到請求URL中
callback (Callback) (可選參數) 載入成功時回調函數(只有當Response的返回狀態是success才是調用該方法)
很顯然這是一個專門實現GET方式的函數,使用起來也相當的簡單

復制代碼代碼如下:

$.get('login.php', {
id : 'Robin',
password: '123456',
gate : 'index'
}, function(data, status) {
//data為返回對象,status為請求的狀態
alert(data);
//此時假設伺服器腳本會返回一段文字"你好,Robin!",
那麼瀏覽器就會彈出對話框顯示該段文字
alert(status);
//結果為success, error等等,但這里是成功時才能運行的函數
});

post( url, [data], [callback], [type] )

url (String) 發送請求的URL地址.
data (Map)(可選參數) 要發送給伺服器的數據,以 Key/value 的鍵值對形式表示
callback (Callback) (可選參數) 載入成功時回調函數(只有當Response的返回狀態是success才是調用該方法)
type (String) (可選參數) 請求數據的類型,xml,text,json等
同樣是jQuery提供的一個簡便函數,其實用法

復制代碼代碼如下:

$.post('regsiter.php', {
id:'Robin',
password: '123456',
type:'user'
},function(data, status) {
alert(data);
}, "json");

事件驅動的腳本載入函數:getScript()

getScript( url, [callback] )
url (String) 待載入 JS 文件地址
callback (Function) (可選) 成功載入後回調函數
getScript()函數可以遠程載入JavaScript腳本並且執行。這個函數可以跨 域載入JS文件(神奇……?!)。這個函數的意義是巨大 的,它可以很大程度的縮減頁面初次載入的代碼量,因為你可以根據用戶的交互來載入相應的JS文件,而不必在頁面初始化的時候全部載入。

復制代碼代碼如下:

$.getScript('ajaxEvent.js', function() {
alert("Scripts Loaded!");
//載入ajaxEvent.js,並且在成功載入後顯示對話框提示。
});

構建數據通訊的橋梁:getJSON()

getJSON(url,[data],[callback])
url (String) 發送請求地址
data (Map) (可選) 待發送 Key/value 參數
callback (Function) (可選) 載入成功時回調函數。
JSON是一種理想的數據傳輸格式,它能夠很好的融合與JavaScript或其他宿主語 言,並且可以被JS直接使用。使用JSON相比傳統的通過 GET、POST直接發送」裸體」數據,在結構上更為合理,也更為安全。至於jQuery的getJSON()函數,只是設置了JSON參數的 ajax()函數的一個簡化版本。這個函數也是可以跨域使用的,相比get()、post()有一定優勢。另外這個函數可以通過把請求url寫 成」myurl?callback=X」這種格式,讓程序執行回調函數X。

復制代碼代碼如下:

$.getJSON('feed.php',{
request: images,
id: 001,
size: large
}, function(json) {
alert(json.images[0].link);
//此處json就是遠程傳回的json對象,假設其格式如下:
//{'images' : [
// {link: images/001.jpg, x :100, y : 100},
// {link: images/002.jpg, x : 200, y 200:}
//]};
}
);

更底層的ajax()函數
雖然get()和post()函數非常簡潔易用,但是對於更復雜的一些設計需求還是無法實現,比如在ajax發送的不同時段做出不同的動作等。jQuery提供一個更為具體的函數:ajax()。

ajax( options )
ajax()提供了一大票參數,所以可以實現相當復雜的功能。

參數名 類型 描述
url String (默認: 當前頁地址) 發送請求的地址。
type String (默認: 「GET」) 請求方式 (「POST」 或 「GET」), 默認為 「GET」。
注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
timeout Number 設置請求超時時間(毫秒)。此設置將覆蓋全局設置。
async Boolean (默認: true) 默認設置下,所有請求均為非同步請求。
如果需要發送同步請求,請將此選項設置為 false。
注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執行。
beforeSend Function 發送請求前可修改 XMLHttpRequest 對象的函數,如添加自定義 HTTP 頭。

XMLHttpRequest 對象是唯一的參數。
function (XMLHttpRequest) { this; // the options for this ajax request } function (XMLHttpRequest) { this; // the options for this ajax request }

cache Boolean (默認: true) jQuery 1.2 新功能,設置為 false 將不會從瀏覽器緩存中載入請求信息。
complete Function 請求完成後回調函數 (請求成功或失敗時均調用)。

參數: XMLHttpRequest 對象,成功信息字元串。
function (XMLHttpRequest, textStatus) { this; // the options for this ajax request } function (XMLHttpRequest, textStatus) { this; // the options for this ajax request }

contentType String (默認: 「application/x-www-form-urlencoded」) 發送信息至伺服器時內容編碼類型。默認值適合大多數應用場合。
data Object,
String 發送到伺服器的數據。將自動轉換為請求字元串格式。GET 請求中將附加在 URL 後。
查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。
如果為數組,jQuery 將自動為不同值對應同一個名稱。
如 {foo:["bar1", "bar2"]} 轉換為 『&foo=bar1&foo=bar2′。
dataType String 預期伺服器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息
返回 responseXML 或 responseText,並作為回調函數參數傳遞,可用值:
「xml」: 返回 XML 文檔,可用 jQuery 處理。
「html」: 返回純文本 HTML 信息;包含 script 元素。
「script」: 返回純文本 JavaScript 代碼。不會自動緩存結果。
「json」: 返回 JSON 數據 。
「jsonp」: JSONP 格式。使用 JSONP 形式調用函數時,
如 「myurl?callback=?」 jQuery 將自動替換 ? 為正確的函數名,以執行回調函數。

error Function (默認: 自動判斷 (xml 或 html)) 請求失敗時將調用此方法。
這個方法有三個參數:XMLHttpRequest 對象,錯誤信息,(可能)捕獲的錯誤對象。
function (XMLHttpRequest, textStatus, errorThrown) { // 通常情況下textStatus和errorThown只有其中一個有值 this; // the options for this ajax request } function (XMLHttpRequest, textStatus, errorThrown) { // 通常情況下textStatus和errorThown只有其中一個有值 this; // the options for this ajax request }

global Boolean (默認: true) 是否觸發全局 AJAX 事件。設置為 false 將不會觸發全局 AJAX 事件,
如 ajaxStart 或 ajaxStop 。可用於控制不同的Ajax事件

ifModified Boolean (默認: false) 僅在伺服器數據改變時獲取新數據。
使用 HTTP 包 Last-Modified 頭信息判斷。

processData Boolean (默認: true) 默認情況下,發送的數據將被轉換為對象(技術上講並非字元串)
以配合默認內容類型 「application/x-www-form-urlencoded」。
如果要發送 DOM 樹信息或其它不希望轉換的信息,請設置為 false。

success Function
請求成功後回調函數。這個方法有兩個參數:伺服器返回數據,返回狀態
function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request } function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request }

你可以指定xml、script、html、json作為其數據類型,可以為beforeSend、error、sucess、complete等狀態設置 處理函數,眾多其它參數也可以訂完完全全定義用戶的Ajax體驗。下面的例子中,我們用ajax()來調用一個XML文檔:

復制代碼代碼如下:

$.ajax({
url: 'doc.xml',
type: 'GET',
dataType: 'xml',
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
alert(xml);
//此處xml就是XML的jQuery對象了,你可以用find()、next()或XPath等方法在裡面尋找節點,
和用jQuery操作HTML對象沒有區別
}
});

進一步了解AJAX事件
前面討論的一些方法都有自己的事件處理機制,從頁面整體來說,都只能說是局部函數。jQuery提供了AJAX全局函數的定義,以滿足特殊的需求。下面是jQuery提供的所有函數(按照觸發順序排列如下):

ajaxStart
(全局事件) 開始新的Ajax請求,並且此時沒有其他ajax請求正在進行
beforeSend
(局部事件) 當一個Ajax請求開始時觸發。如果需要,你可以在這里設置XMLHttpRequest對象
ajaxSend
(全局事件) 請求開始前觸發的全局事件
success
(局部事件) 請求成功時觸發。即伺服器沒有返回錯誤,返回的數據也沒有錯誤
ajaxSuccess
全局事件全局的請求成功
error
(局部事件) 僅當發生錯誤時觸發。你無法同時執行success和error兩個回調函數
ajaxError
全局事件全局的發生錯誤時觸發
complete
(局部事件) 不管你請求成功還是失敗,即便是同步請求,你都能在請求完成時觸發這個事件
ajaxComplete
全局事件全局的請求完成時觸發
ajaxStop
(全局事件) 當沒有Ajax正在進行中的時候,觸發
局部事件在之前的函數中都有介紹,我們主要來看看全局事件。對某個對象進行全局事件監聽,那麼全局中的AJAX動作,都會對其產生影響。比如,當頁面在進行AJAX操作時,ID為」loading」的DIV就顯示出來:

復制代碼代碼如下:

$("#loading").ajaxStart(function(){
$(this).show();
});

全局事件也可以幫助你編寫全局的錯誤相應和成功相應,而不需要為每個AJAX請求獨立設置。有必要指出,全局事件的參數是很有用的。除了 ajaxStart、ajaxOptions,其他事件均有event, XMLHttpRequest, ajaxOptions三個參數。第一個參數即事件本身;第二個是XHR對象;第三個是你傳遞的ajax參數對象。在一個對象里顯示全局的AJAX情況:

復制代碼代碼如下:

$("#msg").beforeSend(function(e,xhr,o) {
$(this).html("正在請求"+o.url);
}).ajaxSuccess(function(e,xhr,o) {
$(this).html(o.url+"請求成功");
}).ajaxError(function(e,xhr,o) {
$(this).html(o.url+"請求失敗");
});

很顯然,第三個參數也可以幫助你傳遞你在AJAX事件里加入的自定義參數。 在單個AJAX請求時,你可以將global的值設為false,以將此請求獨立於AJAX的全局事件。

復制代碼代碼如下:

$.ajax({
url: "request.php",
global: false,
// 禁用全局Ajax事件.
});

如果你想為全局AJAX設置參數,你會用上ajaxSetup()函數。例如,將所有AJAX請求都傳遞到request.php,;禁用全局方法;強制用POST方法傳遞:

復制代碼代碼如下:

$.ajaxSetup({
url: "request.php",
global: false,
type: "POST"
});

一些你不得不知道的方法
寫AJAX肯定離不開從頁面獲取相應的值。在這里簡單列舉一些方法:

val()
val()函數可以返回表單組建的值,例如任何種類input的值。配合選擇符操作,你可以輕易獲取選項組、輸入框、按鈕等元素的值。

復制代碼代碼如下:

$("input[name='info']:text").val();
//返回名字為info的文本框的值
$("input[name='pass']:password").val();
//返回名字為pass的密碼框的值
$("input[name='save']:radio").val();
//返回名字為save的單選項的值
//以此類推

serialize()

serialize函數可以幫你把表單對象的所有值都轉換為字元串序列。如果你要寫GET格式的請求,這個就非常方便了。
serializeArray()和serialize()類似,只不過它返回的是JSON對象。

D. 請問伺服器默認返回是什麼格式數據

$.get(url,function(data){
$("#result").html(data);

})
不需要參數就不用寫。不要寫上個null。這樣不對。

E. 從網頁發送到伺服器的數據是什麼格式是什麼語言形式

取決於網站是用什麼語言編寫的,有asp、php、asp.net、jsp等等。

F. java 解析伺服器返回的XML格式數據

public void parseXML(String filename) {
System.out.println("parse-start");
try {
System.out.println("try-catch-start");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(filename);
NodeList employees = document.getChildNodes();
System.out.println("nodlist-over");
for (int i = 0; i < employees.getLength(); i++) {
Node employee = employees.item(i);
NodeList employeeInfo = employee.getChildNodes();
for (int j = 0; j < employeeInfo.getLength(); j++) {
Node node = employeeInfo.item(j);
NodeList employeeMeta = node.getChildNodes();
for (int k = 0; k < employeeMeta.getLength(); k++) {
System.out.println(employeeMeta.item(k).getNodeName()
+ ":" + employeeMeta.item(k).getTextContent());
}
}
}
System.out.println("解析完畢");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
} catch (SAXException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}

}

G. 用jquery的post方法提交數據需要servlet返回的數據類型是json的數據格式,應該怎麼做

首先你要在servlet里在返回之前就要把返回的數據組裝成json格式的字元串,在前台接收的數據就是json格式了,不需要再轉的。我平時就是這樣做的,沒問題啊。

H. ajax可以處理伺服器返回哪些數據類型

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

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

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

  • json:返回JSON數據。

  • jsonp:JSONP格式。使用SONP形式調用函數時,例如myurl?callback=?,JQuery將自動替換後一個「?」為正確的函數名,以執行回調函數。

  • text:返回純文本字元串。

I. jquery的Ajax應用中伺服器端返回內容的格式有哪些

1:可以直接返回拼接好的片段直接放到指定位置下面 例如:context.Response.Write("<div>內容<div>");
2::返回json數據 例如://顯示詳情
public JsonResult ShowDetail() {
var id = Convert.ToInt32(Request["id"].ToString());
UserInfo u = db.UserInfo.Single(ui=>ui.id== id);
return Json(u,JsonRequestBehavior.AllowGet);
}
3:直接放回判斷結果 context.Response.Write("yes");

J. 編程高手進--如何Post,以及post之後伺服器的返迴文件什麼樣子

The following table shows the steps you might perform in a typical HTTP client application:

Begin an HTTP session.
Create a CInternetSession object.
Initializes WinInet and connects to server.

Connect to an HTTP server.
Use CInternetSession::GetHttpConnection.
Returns a CHttpConnection object.

Open an HTTP request.
Use CHttpConnection::OpenRequest.
Returns a CHttpFile object.

Send an HTTP request.
Use CHttpFile::AddRequestHeaders and CHttpFile::SendRequest.
Finds the file. Returns FALSE if the file is not found.

Read from the file.
Use CHttpFile.
Reads the specified number of bytes using a buffer you supply.

Handle exceptions.
Use the CInternetException class.
Handles all common Internet exception types.

End the HTTP session.
Dispose of the CInternetSession object.
Automatically cleans up open file handles and connections.

這是MSDN上介紹怎麼使用VC開發HTTP客戶端程序的內容,具體每個類怎麼使用,上MSDN查

熱點內容
java運維工程師 發布:2024-11-19 14:21:25 瀏覽:770
linuxgmt 發布:2024-11-19 14:21:16 瀏覽:56
政治演算法學嗎 發布:2024-11-19 14:21:09 瀏覽:332
二維碼生成python 發布:2024-11-19 14:19:00 瀏覽:555
壓縮衣排名 發布:2024-11-19 14:18:49 瀏覽:453
安卓手機商務型哪個牌子好 發布:2024-11-19 13:43:04 瀏覽:584
雲主機哪個配置好 發布:2024-11-19 13:34:43 瀏覽:968
c語言數字u 發布:2024-11-19 13:34:02 瀏覽:961
九游游戲安卓手機下載慢怎麼回事 發布:2024-11-19 13:29:03 瀏覽:433
無線存儲共享器怎麼樣 發布:2024-11-19 13:29:02 瀏覽:112