A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

使用jquery时有个post方法其中返回的数据类型是json的 但我不知道怎么使用C#
语言返回json类型的数组

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

1 个回复

正序浏览
本帖最后由 林洲 于 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>
复制代码

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马