asp教程.net ajax json入门教程与详细实例json简介
在正式讨论json格式之前,首先让我们简要回忆一下xml。xml是“可扩展的标记语言”的简称,它提供了定义web中一系列数据传输协议的方式,是文本型的,被人们誉为“完全开发internet和web潜力的理想方式”。
那么,为什么asp.net教程 ajax中还要引入json呢?还是让我们先来观察一下例子吧。比如当前web页面将从后台载入一些通讯录的信息,这些信息如果写成xml,可能是如下形式:
<contact>
<friend>
<name>michael</name>
<email>17bity@gmail.com</email>
<homepage>http://www.111cn.net</homepage>
</friend>
<friend>
<name>john</name>
<email>john@gmail.com</email>
<homepage>http://www.111cn.net</homepage>
</friend>
<friend>
<name>peggy</name>
<email>peggy@gmail.com</email>
<homepage>http://www.aimeige.com.cn</homepage>
</friend>
</contact>
而写成json形式,则会是:
[
friend: {
name:"michael",
email:"17bity@gmail.com",
homepage:"http://www.111cn.net"
},
friend: {
name:"john",
email:"john@gmail.com",
homepage:"http://www.111cn.net"
},
friend: {
name:"peggy",
email:"peggy@gmail.com",
homepage:"http://mb.111cn.net"
}
]
use类
using system;
using system.collections.generic;
using system.linq;
using system.web;
/// <summary>
///user 的摘要说明
/// </summary>
public class users
{
string name;
public string name
{
get { return name; }
set { name = value; }
}
string age;
public string age
{
get { return age; }
set { age = value; }
}
}
js代码
<script type="text/jscript">
function callserver() {
//json发送对象
serversum("{name:'linyijia',age:'21'}");
}
function getregister(rg, contex) {
document.getelementbyid("txtregister").value=rg;
}
</script>
asp.net
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.script.serialization;
public partial class _default : system.web.ui.page ,icallbackeventhandler
{
users u = null;
protected void page_load(object sender, eventargs e)
{
//回调getregister方法
string callbackfun = page.clientscript.getcallbackeventreference(this,"arg","getregister","context");
//创建serversum方法,在客户端调用的时候就,会回调getregister方法,把参数传给raisecallbackevent(string eventargument ),最后通过
//getcallbackresult()方法把返回值传给客户端
string registerfun = string.format("function serversum(arg,context){{{0};}}",callbackfun);
page.clientscript.registerclientscriptblock(this.gettype(),"serversum",registerfun,true);
}
string mssage = string.empty;
#region icallbackeventhandler 成员
public string getcallbackresult()
{
return "服务器:你好,你的用户名为:" + u.name + "你的年龄为" + u.age;
}
public void raisecallbackevent(string eventargument)
{
网页特效serializer js = new javascriptserializer();
u =js.deserialize<users>(eventargument);
}
#endregion
}