欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery 中使用JSON的實現代碼

 更新時間:2011年12月01日 22:46:38   作者:  
json 是 Ajax 中使用頻率最高的數據格式,在瀏覽器和服務器中之間的通訊可離不開它

JSON 的格式說明可以在可以這里看到,非常詳細,還是中文的。

JSON 格式說明

需要特別注意的是,在 JSON 中的屬性名是需要使用引號引起來的。

 jQuery 中使用 JSON

jQuery 是現在使用廣泛的腳本庫,那么,在 jQuery 中如何使用 JSON 呢?

解析 JSON

在 jQuery 中已經提供了對于解析 JSON 的內在支持,

jQuery.parseJSON 函數提供了解析的支持,詳細的說明見這里。

復制代碼 代碼如下:

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

使用對象生成 JSON 格式串

在 jQuery 中并沒有提供直接將普通的 JavaScript 對象轉換為 JSON 串的方法,可以使用下面的擴展庫來完成。

jquery-json 擴展庫

這個庫用來擴展 jQuery ,對于 JSON 的使用,擴展了兩個方法。

toJSON 方法用來將一個普通的 JavaScript 對象序列化為 JSON 串。
復制代碼 代碼如下:

var thing = {plugin: 'jquery-json', version: 2.3};
var encoded = $.toJSON( thing ); // '{"plugin":"jquery-json","version":2.3}'

evalJSON 方法將一個 JSON 串解析為一個普通的 JavaScript 對象。
復制代碼 代碼如下:

var thing = {plugin: 'jquery-json', version: 2.3};
var encoded = $.toJSON( thing ); // '{"plugin":"jquery-json","version":2.3}'
var name = $.evalJSON( encoded ).plugin; // "jquery-json"
var version = $.evalJSON(encoded).version; // 2.3

這個擴展的下載地址:http://code.google.com/p/jquery-json/

使用 jQuery 配合 WCF
客戶端

jQuery 中的 $.post 可以直接向服務器發(fā)出請求,將服務器返回的數據按照 JSON 方式進行解析,不過,需要注意下面幾點:

請求的內容類型必須為 json 格式,這可以通過上面的 jQuery-json 擴展庫來完成,需要特別注意的在請求的 contentType 也必須使用 text/json 進行說明,默認的 post 使用普通的名值對方式請求,因此 contentType 是: application/x-www-form-urlencoded,可以通過 $.ajaxSetup 來進行設置:
復制代碼 代碼如下:

// Ajax 設置
$.ajaxSetup({ contentType: 'text/json' });

這樣,請求的內容類型就設置為需要的類型。

其次,實際的請求內容必須使用 JSON 方式,這可以通過擴展庫的 $.toJSON 來實現,例如:

$.toJSON({ x: 2, y: 3 })

這樣,如果服務器端提供了一個服務方法 Sum,定義如下:
復制代碼 代碼如下:

public int Sum(int x, int y)
{
return x + y;
}

就可以如下調用了。注意,WCF 返回的數據在屬性 d 中。
復制代碼 代碼如下:

// Ajax 設置
$.ajaxSetup({ contentType: 'text/json' });
$("#wcfBtn").click(function () {
$.post("Service1.svc/Sum", $.toJSON({ x: 2, y: 3 }), function (data) {
alert(data.d);
});
});

服務器端的配置
首先,為服務增加標簽:[System.ServiceModel.Activation.AspNetCompatibilityRequirements(
RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Allowed)]
復制代碼 代碼如下:

// #1
// 為了在腳本中使用,必須增加這個標簽
[System.ServiceModel.Activation.AspNetCompatibilityRequirements(
RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Allowed)]
// #2
// 在網站的配置文件中也需要進行設定
public class Service1 : IService1
{
public int Sum(int x, int y)
{
return x + y;
}
}

然后,在網站的配置文件中,如下配置。
復制代碼 代碼如下:

<system.serviceModel>
<!-- 為了支持在瀏覽器端調用 WCF 服務的特定配置 -->
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<serviceActivations>
<!-- relativeAddress 服務的地址
service 實現服務的類型,全名,包含命名空間,甚至程序集
factory 是 WCF 系統(tǒng)提供,直接使用
-->
<add relativeAddress="Service1.svc" service="MServer.Service1" factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
/>
</serviceActivations>
</serviceHostingEnvironment>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

jQuery使用JSON的例子
復制代碼 代碼如下:

////////////1、在HTML中,有這樣一個表單:
<form method="post" name="searchform" id="searchform" method="/sek.go">
<input name="query" value="" type="text" id="query" />
<input type=”submit” value="查詢"></input>
</form>
////////////當然,要想在HTML中使用Js功能,必須在<head/>中加入
<script type="text/javascript"src="/style/js/ajax.js"></script>
////////////2、然后在ajax.js文件中加入如下代碼
function userSearch(){
var query = $("#searchform input[@name='query']").val();
$.post("/userSearch.htm", { query: query } ,function callback(json){
var userlist = $.parseJSON(json);
userList(userlist);
});
}
/*******************************************
解釋如下:
1)、"#searchform input[@name='query']";的意思是: 選擇id為searchform其下的(name屬性值為'query'的)input標簽
2)、$(“”).val()意為要得到(“”)所選中屬性的值;
3)、在$.post()中,第一項參數是指定目標servlet,即要把本post請求發(fā)給的那個servlet。
第二項是本post請求所攜帶的數據;“:”前的為key或者name,后為value;
第三項是回調函數,其內若有形參,則表示要對從servlet返回的值進行處理,這里的callback的功能是將JSON對象json轉換成了JS對象userlist,然后將JS對象傳入函數userList
3、post請求攜帶了名為query的參數去了后臺,在servlet中進行處理:
//從名為"query"能的參數中取出post帶過來的數據
String query = request.getParameter("query");
if (query != null && !query.isEmpty()
&& !query.trim().equalsIgnoreCase("")) {
//如果"query"的值不為空,就用'query'為參數構建HQL語句
String hql = "from TUser as user where user.userName like '"+ query + "%'";
//到庫表TUser中進行查詢,并得到一個表結構
List list = weilav3TUserDAO.getListByHQL(hql);
if (list != null && !list.isEmpty()) {
//若list不為空,則將其轉換成JSON對象,并存入jsonArray中
JSONArray jsonArray = JSONArray.fromObject(list);
//下面就是把存有查詢結果的JSON對象返給頁面
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println(jsonArray);
……
}else {……}
**************/

相關文章

  • jQuery實現左右滑動的toggle方法

    jQuery實現左右滑動的toggle方法

    下面小編就為大家分享一篇jQuery實現左右滑動的toggle方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • JQuery擴展插件Validate—4設置錯誤提示的樣式

    JQuery擴展插件Validate—4設置錯誤提示的樣式

    JQuery擴展插件Validate—4設置錯誤提示的樣式,使用Validate的朋友可以參考下。
    2011-09-09
  • 初窺JQuery(二) 事件機制(1)

    初窺JQuery(二) 事件機制(1)

    JQuery的事件處理機制在JQuery框架中起著重要的左右,它就像電視機的開關,我們打開電視機的開關才能看到各個電視臺精彩的節(jié)目,那么我們使用JQuery的事件處理機制就可以創(chuàng)造我們自定義的行為,比如說提交、改變樣式、效果顯示等等,使我們的網頁更加豐富。
    2010-11-11
  • jQuery中prependTo()方法用法實例

    jQuery中prependTo()方法用法實例

    這篇文章主要介紹了jQuery中prependTo()方法用法,實例分析了prependTo()方法的功能、定義及匹配的元素插入指定元素之前的使用技巧,需要的朋友可以參考下
    2015-01-01
  • jQuery實現的瀑布流加載效果示例

    jQuery實現的瀑布流加載效果示例

    這篇文章主要介紹了jQuery實現的瀑布流加載效果,結合實例形式分析了jQuery基于數學運算與事件響應實現頁面瀑布流加載的功能,需要的朋友可以參考下
    2016-09-09
  • Jquery根據瀏覽器窗口改變調整大小的方法

    Jquery根據瀏覽器窗口改變調整大小的方法

    下面小編就為大家?guī)硪黄狫query根據瀏覽器窗口改變調整大小的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • NiftyCube——輕松實現圓角邊框

    NiftyCube——輕松實現圓角邊框

    這篇文章主要介紹了NiftyCube——輕松實現圓角邊框
    2007-02-02
  • jQuery中before()方法用法實例

    jQuery中before()方法用法實例

    這篇文章主要介紹了jQuery中before()方法用法,以實例形式分析了before()方法的功能、定義與具體使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • jQuery+Pdo編寫login登陸界面

    jQuery+Pdo編寫login登陸界面

    這篇文章主要為大家詳細介紹了jQuery結合Pdo編寫login登陸界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 實例代碼講解jquery easyui動態(tài)tab頁

    實例代碼講解jquery easyui動態(tài)tab頁

    這篇文章主要介紹了實例代碼講解jquery easyui動態(tài)tab頁的相關資料,需要的朋友可以參考下
    2015-11-11

最新評論