導航:首頁 > IDC知識 > 伺服器發送json數據

伺服器發送json數據

發布時間:2020-10-16 14:32:24

1、如何使用JSON格式 POST數據到伺服器

1. JSON的數據格式
a) 按照最簡單的形式,可以用下面這樣的 JSON 表示名稱/值對:

{ "firstName": "Brett" }

b) 可以創建包含多個名稱/值對的記錄,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }

c) 可以創建值的數組

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
]}

d) 當然,可以使用相同的語法表示多個值(每個值包含多個記錄):

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }
]
}

注意,在不同的主條目(programmers、authors 和 musicians)之間,記錄中實際的名稱/值對可以不一樣。JSON 是完全動態的,允許在 JSON 結構的中間改變表示數據的方式。

2. 在 JavaScript 中使用 JSON
JSON 是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON 數據不需要任何特殊的 API 或工具包。
2.1 將 JSON 數據賦值給變數
例如,可以創建一個新的 JavaScript 變數,然後將 JSON 格式的數據字元串直接賦值給它:

var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }
]
}

2.2 訪問數據
將這個數組放進 JavaScript 變數之後,就可以很輕松地訪問它。實際上,只需用點號表示法來表示數組元素。所以,要想訪問 programmers 列表的第一個條目的姓氏,只需在JavaScript 中使用下面這樣的代碼:

people.programmers[0].lastName;

注意,數組索引是從零開始的。

2.3 修改 JSON 數據
正如訪問數據,可以按照同樣的方式修改數據:

people.musicians[1].lastName = "Rachmaninov";

2.4 轉換回字元串
a) 在 JavaScript 中這種轉換也很簡單:

String newJSONtext = people.toJSONString();

b) 可以將任何 JavaScript 對象轉換為 JSON 文本。並非只能處理原來用 JSON 字元串賦值的變數。為了對名為 myObject 的對象進行轉換,只需執行相同形式的命令:

String myObjectInJSON = myObject.toJSONString();

說明:將轉換回的字元串作為Ajax調用的字元串,完成非同步傳輸。
小結:如果要處理大量 JavaScript 對象,那麼 JSON 幾乎肯定是一個好選擇,這樣就可以輕松地將數據轉換為可以在請求中發送給伺服器端程序的格式。

3. 伺服器端的 JSON
3.1 將 JSON 發給伺服器
a) 通過 GET 以名稱/值對發送 JSON
在 JSON 數據中會有空格和各種字元,Web 瀏覽器往往要嘗試對其繼續編譯。要確保這些字元不會在伺服器上(或者在將數據發送給伺服器的過程中)引起混亂,需要在JavaScript的escape()函數中做如下添加:

var url = "organizePeople.php?people=" + escape(people.toJSONString());
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);

b) 利用 POST 請求發送 JSON 數據
當決定使用 POST 請求將 JSON 數據發送給伺服器時,並不需要對代碼進行大量更改,如下所示:

var url = "organizePeople.php?timeStamp=" + new Date().getTime();
request.open("POST", url, true);
request.onreadystatechange = updatePage;
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(people.toJSONString());

注意:賦值時格式必須是var msg=eval('(' + req.responseText + ')');

3.2 在伺服器上解釋 JSON
a) 處理 JSON 的兩步驟。
針對編寫伺服器端程序所用的語言,找到相應的 JSON 解析器/工具箱/幫助器 API。
使用 JSON 解析器/工具箱/幫助器 API 取得來自客戶機的請求數據並將數據轉變成腳本能理解的東西。
b) 尋找 JSON 解析器
尋找 JSON 解析器或工具箱最好的資源是 JSON 站點。如果使用的是 Java servlet,json.org 上的 org.json 包就是個不錯的選擇。在這種情況下,可以從 JSON Web 站點下載 json.zip 並將其中包含的源文件添加到項目構建目錄。編譯完這些文件後,一切就就緒了。對於所支持的其他語言,同樣可以使用相同的步驟;使用何種語言取決於您對該語言的精通程度,最好使用您所熟悉的語言。
c) 使用 JSON 解析器
一旦獲得了程序可用的資源,剩下的事就是找到合適的方法進行調用。如果在 servlet 中使用的是 org.json 包,則會使用如下代碼:

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
StringBuffer jb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null)
jb.append(line);
} catch (Exception e) { //report an error }
try {
JSONObject jsonObject = new JSONObject(jb.toString());
} catch (ParseException e) {
// crash and burn
throw new IOException("Error parsing JSON request string");
}
// Work with the data using methods like...
// int someInt = jsonObject.getInt("intParamName");
// String someString = jsonObject.getString("stringParamName");
// JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName");
// JSONArray arr = jsonObject.getJSONArray("arrayParamName");
// etc...
}

2、如何使用JSON格式 POST數據到伺服器

1. JSON的數據格式a) 按照最簡單的形式,可以用下面這樣的 JSON 表示名稱/值對:{ "firstName": "Brett" }b) 可以創建包含多個名稱/值對的記錄,比如:{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }c) 可以創建值的數組{ "people": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }, { "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }]}d) 當然,可以使用相同的語法表示多個值(每個值包含多個記錄):{ "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }, { "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" } ],"authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }],"musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }]}注意,在不同的主條目(programmers、authors 和 musicians)之間,記錄中實際的名稱/值對可以不一樣。JSON 是完全動態的,允許在 JSON 結構的中間改變表示數據的方式。

2. 在 JavaScript 中使用 JSONJSON 是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON 數據不需要任何特殊的 API 或工具包。

2.1 將 JSON 數據賦值給變數例如,可以創建一個新的 JavaScript 變數,然後將 JSON 格式的數據字元串直接賦值給它:var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }, { "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" } ] }

2.2 訪問數據將這個數組放進 JavaScript 變數之後,就可以很輕松地訪問它。實際上,只需用點號表示法來表示數組元素。所以,要想訪問 programmers 列表的第一個條目的姓氏,只需在JavaScript 中使用下面這樣的代碼:people.programmers[0].lastName;注意,數組索引是從零開始的。

2.3 修改 JSON 數據正如訪問數據,可以按照同樣的方式修改數據:people.musicians[1].lastName = "Rachmaninov";

2.4 轉換回字元串a) 在 JavaScript 中這種轉換也很簡單:String newJSONtext = people.toJSONString();b) 可以將任何 JavaScript 對象轉換為 JSON 文本。並非只能處理原來用 JSON 字元串賦值的變數。為了對名為 myObject 的對象進行轉換,只需執行相同形式的命令:String myObjectInJSON = myObject.toJSONString();說明:將轉換回的字元串作為Ajax調用的字元串,完成非同步傳輸。小結:如果要處理大量 JavaScript 對象,那麼 JSON 幾乎肯定是一個好選擇,這樣就可以輕松地將數據轉換為可以在請求中發送給伺服器端程序的格式。
3. 伺服器端的 JSON3.1 將 JSON 發給伺服器a)
通過 GET 以名稱/值對發送 JSON在 JSON 數據中會有空格和各種字元,Web 瀏覽器往往要嘗試對其繼續編譯。要確保這些字元不會在伺服器上(或者在將數據發送給伺服器的過程中)引起混亂,需要在JavaScript的escape()函數中做如下添加:var url = "organizePeople.php?people=" + escape(people.toJSONString());request.open("GET", url, true);request.onreadystatechange = updatePage;request.send(null);b) 利用 POST 請求發送 JSON 數據當決定使用 POST 請求將 JSON 數據發送給伺服器時,並不需要對代碼進行大量更改,如下所示:var url = "organizePeople.php?timeStamp=" + new Date().getTime();request.open("POST", url, true);request.onreadystatechange = updatePage;request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");request.send(people.toJSONString());注意:賦值時格式必須是var msg=eval('(' + req.responseText + ')');
3.2 在伺服器上解釋 JSONa) 處理 JSON 的兩步驟。 針對編寫伺服器端程序所用的語言,找到相應的 JSON 解析器/工具箱/幫助器 API。 使用 JSON 解析器/工具箱/幫助器 API 取得來自客戶機的請求數據並將數據轉變成腳本能理解的東西。 b) 尋找 JSON 解析器尋找 JSON 解析器或工具箱最好的資源是 JSON 站點。如果使用的是 Java servlet,json.org 上的 org.json 包就是個不錯的選擇。在這種情況下,可以從 JSON Web 站點下載 json.zip 並將其中包含的源文件添加到項目構建目錄。編譯完這些文件後,一切就就緒了。對於所支持的其他語言,同樣可以使用相同的步驟;使用何種語言取決於您對該語言的精通程度,最好使用您所熟悉的語言。c) 使用 JSON 解析器一旦獲得了程序可用的資源,剩下的事就是找到合適的方法進行調用。如果在 servlet 中使用的是 org.json 包,則會使用如下代碼:public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StringBuffer jb = new StringBuffer(); String line = null; try { BufferedReader reader = request.getReader(); while ((line = reader.readLine()) != null) jb.append(line); } catch (Exception e) { //report an error } try { JSONObject jsonObject = new JSONObject(jb.toString()); } catch (ParseException e) { // crash and burn throw new IOException("Error parsing JSON request string"); } // Work with the data using methods like... // int someInt = jsonObject.getInt("intParamName"); // String someString = jsonObject.getString("stringParamName"); // JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName"); // JSONArray arr = jsonObject.getJSONArray("arrayParamName"); // etc...}

3、怎麼樣模擬瀏覽器post一段json數據到伺服器上

火狐瀏覽器到插件中心搜poster, 然後安裝插件填上鏈接,在parameters填參數,然後在content to send點 body from parameters 再點Post按鈕就可以發了

4、如何使用JSON格式 POST數據到伺服器

1、編程語言

//----1、
HttpPost request = new HttpPost(url);
// 先封裝一個 JSON 對象
JSONObject param = new JSONObject();
param.put("name", "rarnu");
param.put("password", "123456");
// 綁定到請求 Entry
StringEntity se = new StringEntity(param.toString());
request.setEntity(se);
// 發送請求
HttpResponse httpResponse = new DefaultHttpClient().execute(request);
// 得到應答的字元串,這也是一個 JSON 格式保存的數據
String retSrc = EntityUtils.toString(httpResponse.getEntity());
// 生成 JSON 對象
JSONObject result = new JSONObject( retSrc);
String token = result.get("token");

2、jQuery

 $.post("getUserMessage.ashx?t=" + Math.random(), { userName: txtUserName.val(), userPassWord: txtPassWord.val() }, function (json) {
                if (json) {  
                //返回Json數據處理
                }
 }, "json");

5、如何向伺服器發送json數據

版權聲明:本文為博主原創文章,未經博主允許不得轉載。
Ajax中可以使用xml作為參數發送給伺服器,除了XML還可以使用JSON(http://www.json.org/json-zh.html)
XML的一個替代方法是JSON,JSON是一種文本格式,它獨立於具體語言,JSON建立在以下兩種數據結構基礎上:
名/值對集合,在不同的語言中,被實現為一個對象、記錄、結構或字典
值的有序表,在大部分語言中,實現為數組
JSON可以做為異構系統之間的一種數據互換格式。
JSON對象是名/值對的無序集合({},使用「:」分隔),JSON數組是一個有序的值集合([],使用「,」分隔)

如下就是一個JSON格式的數據:

var employee = {
「firstName」 : John
, 「lastName」 : Do

6、伺服器端是怎樣把資料庫的表轉換成json進行發送給客戶端

這邊幾乎都是做android的 伺服器那塊 估計懂得人不多 我看php伺服器那邊 寫的是 json_encode($arr) ,不知道能不能幫你

7、如何使用JSON格式 POST數據到伺服器

1. JSON的數據格式
a) 按照最簡單的形式,可以用下面這樣的 JSON 表示名稱/值對:

{ "firstName": "Brett" }

b) 可以創建包含多個名稱/值對的記錄,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }

c) 可以創建值的數組

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
]}

d) 當然,可以使用相同的語法表示多個值(每個值包含多個記錄):

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
],

8、如何用post方法向伺服器發送一個json類型的字元串

jquery 的$.post方法
function sendAjax(){
var userinfoRef = new userinfo('毛主席','1001');
var jsonStringRef = JSON.stringify(userinfoRef);
$.post("url",{
jsonString : jsonStringRef
});
}、
在後台定義一個String jsonString同名變數,來接收前台的jsonString 字元串即可。

9、如何上傳json格式的數據到伺服器?

首先,你可以手動拼json。然後是人ajax的方式,或者window.loacation=url的方式向服務端提交。
其次,但是不管你怎麼拼,都不能發送圖片等文件到伺服器!
這並不是說json格式不行,而是在頁面上發送信息到服務端的時候文件類的是由瀏覽器自動轉為流的,而你在頁面上的任何腳本都不能讀取文件!

10、我想以post方式向伺服器發送json數據,為什麼總是失敗

還是你姿勢不對,或者對方姿勢不對。

可以先使用這個HTTP請求在線工具:

http://www.sojson.com/httpRequest

然後:

選擇後就會這樣,把您的JSON放進去:

然後請求吧:如果可以,那麼最起碼對方是能接收JSON

與伺服器發送json數據相關的知識