轻量级的数据交换格式——初识Json(下)
2012-05-17 17:00 飘扬的红领巾 阅读(552) 评论(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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | public class UserInfo { private int _userid; private string _username; private string _password; /// <summary> /// 构造函数 /// </summary> public UserInfo() { } /// <summary> /// 赋值函数 /// </summary> /// <param name="__userid">UserId /// <param name="__username">UserName /// <param name="__password">Password public UserInfo( int __userid, String __username, String __password) { _userid = __userid; _username = __username; _password = __password; } /// <summary> /// UserId /// </summary> public int UserId { get { return _userid; } set { _userid = value; } } /// <summary> /// UserName /// </summary> public String UserName { get { return _username; } set { _username = value; } } /// <summary> /// Password /// </summary> public String Password { get { return _password; } set { _password = value; } } } |
step 2、然后建立一个Handler.ashx,用于返回一个json格式的字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?