首先我们在客户端生成json字符串,通过ajax把该字符串传到服务器端
 
//这是一个以id,email,age的json字符串
  var jdata="[{\"id\":0,\"email\":\"abccd\",\"age\":0},{\"id\":1,\"email\":\"abc1\",\"age\":2}]";
 
//将这个json字符串,传递到PaperMark.ashx侧处理
 $.post("AJAX/PaperMark.ashx", {
                            jdata: jdata
                          
                        }, function(data, textStatus) {
    });
 
在PaperMark.ashx我们要引用下面的命名空间
using System.Web.Script.Serialization;
using System.Collections.Generic;
 
 string jsonData = context.Request.Form["jdata"];  //取得这个json字符串
 
//做一个类id,email,age和json格式一致
  public class Person
    {
        public int id { set; get; }
        public String email { set; get; }
        public int age { set; get; }
    }
 
//这个一个反序列化的方法,用于返回泛型集合
 public static T JSONToObject<T>(string jsonText)
    {
        JavaScriptSerializer jss = new JavaScriptSerializer();
        return jss.Deserialize<T>(jsonText);
    }
//调用上面这个方法,把json字符串传进去,就得到一个对象集合了
 List<Person> DataReust = JSONToObject<List<Person>>(jsonData);
        for (int i = 0; i < DataReust.Count; i++)
        {
            string j = DataReust[i].email;
        }
 
注意点:
json字符串的构造一定要正确。要不然解析不出来。

为了在js端更为方便的构造出正确的json对象,我做了一些函数用于生成json字符串

var jstr = "";
              var jsData = "[";   //这个就是最后生成的json字符串
            
              function AddJsonItemStart() {
                  jstr = "";
              }

//vtype==int的时候不加引号

function AddJsonItem(name, val, vtype) {

if (jstr == "") {
                      //为整型的情况下面
                      if (vtype == "int") {
                          jstr = "{\"" + name + "\":" + val + ",";
                      }
                      else {
                          //为字符串的情况下面
                          jstr = "{\"" + name + "\":\"" + val + "\",";
                      }

}
                  else {
                      if (vtype == "int") {
                          jstr = jstr + "\"" + name + "\":" + val + ",";
                      }
                      else {
                          jstr = jstr + "\"" + name + "\":\"" + val + "\",";
                      }

}
              }

function AddJsonItemOK() {
                  jstr = jstr.substring(0, jstr.length - 1) + "},";
                  jsData = jsData + jstr;
              }

function AddJsonEnd() {
                  jsData = jsData.substring(0, jsData.length - 1) + "]";
              }

使用方法:

AddJsonItemStart();
                  AddJsonItem("id", 1, "int");
                  AddJsonItem("email", "abc", "string");
                  AddJsonItem("age", 5, "int");
                  AddJsonItemOK();

AddJsonItemStart();
                  AddJsonItem("id", 2, "int");
                  AddJsonItem("email", "cef", "string");
                  AddJsonItem("age", 6, "int");
                  AddJsonItemOK();
                  AddJsonEnd();

最新文章

  1. WCF学习之旅—第三个示例之一(二十七)
  2. Shell数组例子
  3. ll 详解
  4. weblogic一些基本概念
  5. C#的基础数据类型
  6. 微信小程序多列选择器之range-key
  7. tcc分布式事务框架解析
  8. MySQL单表查询
  9. .Net Core---- 通过EPPlus批量导出
  10. 包建强的培训课程(1):Android App企业级开发
  11. vux环境配置
  12. CSS3知识!
  13. 如何处理浏览器缓存 加t
  14. 实现统计 android手机 CPU使用率
  15. 20181103 Nginx(布尔教育)
  16. Android训练课程(Android Training) - 构建你的第一个应用
  17. lua入门之二:c/c++ 调用lua及多个函数返回值的获取
  18. netty之LengthFieldBasedFrameDecoder解码器
  19. Hive优化-大表join大表优化
  20. 移动端 html基值(转载)

热门文章

  1. bzoj3779: 重组病毒 link-cut-tree
  2. 【BZOJ】[SDOI2009]HH的项链
  3. 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)
  4. npm编译报错,缺少组件
  5. mybatis generator 生成javabean自定义类型转换
  6. 6.memcached缓存系统
  7. hdu 2215 &amp; hdu 3932(最小覆盖圆)
  8. 实现类似微信聊天功能的mysql表设计
  9. React入门 (2)—实现微博展示列表
  10. AC日记——病毒侵袭 hdu 2896