黑马程序员技术交流社区

标题: 如何在一般处理程序中返回一个JSON数组? [打印本页]

作者: 彭张铨    时间: 2012-9-18 10:19
标题: 如何在一般处理程序中返回一个JSON数组?
使用jquery时有个post方法其中返回的数据类型是json的 但我不知道怎么使用C#
语言返回json类型的数组
作者: 林洲    时间: 2012-9-18 11:03
本帖最后由 林洲 于 2012-9-18 11:06 编辑

json是服务端将复杂的对象序列化成为一个字符串,在浏览器端再将字符串反序列化为js可以读取的对象。
在C#中通过通过JavaScriptSerializer类就可以得到json对象,可以通过以下代码去理解:
如下服务端ashx页:
  1.         public void ProcessRequest(HttpContext context)
  2.         {
  3.             context.Response.ContentType = "text/plain";
  4.             JavaScriptSerializer jss = new JavaScriptSerializer();            
  5.             //string json = jss.Serialize(new Person(){Name="tom",Age=30});//json 序列化对象
  6.             //string json = jss.Serialize(new string[] {"张静初","曲栅栅" });//json 序列化数组
  7.             Person[] ps = new Person[] { new Person() { Name = "张静初", Age = 30 }, new Person() { Name = "曲栅栅", Age = 30 } };
  8.             string json = jss.Serialize(ps);//json 序列化对象数组
  9.             context.Response.Write(json);
  10.         }

  11.         public bool IsReusable
  12.         {
  13.             get
  14.             {
  15.                 return false;
  16.             }
  17.         }
  18.     }

  19.     public class Person
  20.     {
  21.         public string Name { get; set; }
  22.         public int Age { get; set; }
  23.     }
复制代码
在客户端html页中,可以通过如下代码去调服务端传过来的json
  1. <script type="text/javascript">
  2.         $(function () {
  3.             $.post("JsonTest5.ashx", function (data, status) {
  4.                 var person = $.parseJSON(data);// 通过$.parseJSON(data)这个方法将服务端传过来的C#对象,转化为浏览器所能理解的
  5.                 alert(person[0].Name);
  6.                 //alert(person[0]);
  7.                 //alert(person.Name);
  8.                 //alert(data);
  9.             });
  10.         });
  11.     </script>
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2