轻量级的数据交换格式——初识Json(下)
2012-05-17 17:00 飘扬的红领巾 阅读(560) 评论(0) 收藏 举报 其实第一次见到服务器端使用json是在用asp.net mvc做项目的时候,在asp.net mvc 1.0中Controller可以直接返回给视图一个json对象。但当时大部分时候是返回一个ViewData,对json没有使用过。
下面就介绍在.net环境下解析json的一个api——json.net。我们使用Json.net来实现JSON数据的序列化和反序列化。下载地址:http://www.newtonsoft.com/downloads/json/json.zip
以下实例介绍了一个与jquery结合实现的ajax调用服务器端解析的json,并显示到浏览器。
step 1、先建立一个数据库表的实体模型(往往在分层开发中经常这样做):
UserInfo.cs:
public class UserInfo
{
private int _userid;
private string _username;
private string _password;
///
/// 构造函数
///
public UserInfo()
{
}
///
/// 赋值函数
///
/// UserId
/// UserName
/// Password
public UserInfo(int __userid, String __username, String __password)
{
_userid = __userid;
_username = __username;
_password = __password;
}
///
/// UserId
///
public int UserId
{
get
{
return _userid;
}
set
{
_userid = value;
}
}
///
/// UserName
///
public String UserName
{
get
{
return _username;
}
set
{
_username = value;
}
}
///
/// Password
///
public String Password
{
get
{
return _password;
}
set
{
_password = value;
}
}
}
step 2、然后建立一个Handler.ashx,用于返回一个json格式的字符串
using System;
using System.Web;
using Newtonsoft.Json;//引用json.net
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
UserInfo userInfo = new UserInfo(1,"liping","123");
string strJson = JavaScriptConvert.SerializeObject(userInfo);//将对象序列化为json格式的字符串
//UserInfo userByJson = (UserInfo)JavaScriptConvert.DeserializeObject(strJson, typeof(UserInfo));//通过这样将json格式字符串反序列化成对象
context.Response.Write(strJson);
}
public bool IsReusable {
get {
return false;
}
}
}
访问效果:
step 3、客服端使用ajax访问Handler.ashx:
javascript code:
1 <div id="divclickajax">点击执行ajax请求</div>
最后效果
本文主要介绍了利用json.net对对象进行序列化(反序列化)的操作,从而为客服端提供合适的数据格式,最后通过ajax访问得到结果。关于 json.net的更多信息可以参见官方网站:http://james.newtonking.com/projects/json-net.aspx
浙公网安备 33010602011771号