今天无意看到 Joyrock 及 JSON-RPC 关键字眼;貌似没听说过,搜索一下大概了解了一下。在网上找到了相关dll、js文件;并动手建了个web项目,写了个简单例子;以便看客直接进入实战。

      

                                             图 - 1

新建项目,加入引用;闲话不唠了。还是直接代码了。

前端代码:

[html] view plaincopy
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="JoyrockWebDemo._Default" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4. <html xmlns="http://www.w3.org/1999/xhtml">  
  5. <head runat="server">  
  6.     <title></title>  
  7.   
  8.     <script type="text/javascript" src="JayrockDLL/json.js"></script>  
  9.   
  10.     <script type="text/javascript" src="JayrockHandler.ashx?proxy"></script>  
  11.   
  12.     <script type="text/javascript">  
  13.         var jayrockHandler = new JayrockHandler();  
  14.   
  15.         function showData() {  
  16.             //调用hander的GetHelloWord方法时,注意大小写(js敏感)  
  17.             document.getElementById("helloWorld").innerHTML = jayrockHandler.GetHelloWorld();  
  18.               
  19.             document.getElementById("userList").innerHTML = jayrockHandler.GetUserList();  
  20.         }  
  21.     </script>  
  22.   
  23. </head>  
  24. <body>  
  25.     <form id="form1" runat="server">  
  26.     <input id="Button1" type="button" value="showData" onclick="showData();" />  
  27.     <div id="helloWorld"></div>  
  28.     <div id="userList"></div>  
  29.     </form>  
  30. </body>  
  31. </html>  

再新建一个 JayrockHandler.ashx 文件, 代码如下:

[csharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.Services;  
  6. using Jayrock.JsonRpc;  
  7. using Jayrock.JsonRpc.Web;  
  8. using Jayrock.Json.Conversion;  
  9.   
  10. namespace JoyrockWebDemo  
  11. {  
  12.     public class JayrockHandler : JsonRpcHandler  
  13.     {  
  14.         [JsonRpcMethod("GetHelloWorld")]  
  15.         public string GetHelloWorld()  
  16.         {  
  17.             return "Hello, World!";  
  18.         }  
  19.   
  20.         [JsonRpcMethod("GetUserList")]  
  21.         public string GetUserList()  
  22.         {  
  23.             //定义实体类列表  
  24.             List<UserEntity> list = new List<UserEntity>();  
  25.   
  26.             //加一些数据  
  27.             list.Add(new UserEntity() { userID = 1, userName = "kevin1", userSex = "man" });  
  28.             list.Add(new UserEntity() { userID = 1, userName = "kevin2", userSex = "man" });  
  29.             list.Add(new UserEntity() { userID = 1, userName = "kevin3", userSex = "man" });  
  30.   
  31.             //序列化为json格式字符串  
  32.             return JsonConvert.ExportToString(list);  
  33.         }  
  34.     }  
  35.   
  36.     /// <summary>  
  37.     /// 建一实体类  
  38.     /// </summary>  
  39.     public class UserEntity  
  40.     {  
  41.         public int userID { setget; }  
  42.         public string userName { setget; }  
  43.         public string userSex { setget; }  
  44.     }  
  45. }  

         这个东西又给我们一个前端javascript调用后端的业务方法提供了简便的思路。不需要再借用JQueryNewtonsoft.Json.dll等多个三方支持类库框架达到我们需要。是个挺好的东西哦。大家可以不妨一试哦。当然这类库里面还有好多方法功能;有兴趣的大家自己可以进一步研究了。

 

这里有来自网上关于其简介。大家不妨看看。

Joyrock简介
        Joyrock 是一个基于LGPL协议的开源项目,实现了JSON和JSON-RPC,支持微软ASP.NET框架。它方便我们读取从浏览器流向服务器的JSON对象,也方便在响应流中写入JSON对象。
        Jayrock 远程方法要求写在一个ashx中,页面请求这个ashx的时候,在ProcessRequest 中根据Request对象中的参数信息,确定请求的服务器端方法名称和参数,然后进行调用,并返回结果。


官方简介url:http://jayrock.berlios.de/

学习资料链接:Jayrock.Json读取json数据(net)

本文Dome例子下载:http://download.csdn.net/detail/chz_cslg/4334386


本文转载:CSDN博客