AJAX调用方式总结(5)

来源:互联网 发布:div调用js方法 编辑:程序博客网 时间:2024/05/19 23:23

长篇大论来讲述什么是AJAX,怎么使用AJAX,这样我总觉得太理论化了,接受起来会有一定的难度...所以,本篇博客的另一个主旨是:从实例入手,由浅到深。

实例五[补充内容]:Json格式数据的打包和解包方式

在打包和解包中,我们仍旧用到了上面提及的Json数据API,同样要先添加引用,由于代码都有了对应的注释,不再多做文字的赘述,直接贴上代码和效果吧:

代码:

  1.  namespace Json打包解包方式  
  2.  {  
  3.      class Program  
  4.      {  
  5.          static void Main(string[] args)  
  6.          {  
  7.              string name = "zld";  
  8.              int age = 23;  
  9.              string addr = "nb";  
  10.    
  11.              //----------------------匿名打包-------------------//  
  12.              //创建匿名类型  
  13.              var temClass = new { Name = name, Age = age, Addr = addr };  
  14.               
  15.              Console.WriteLine("----------通过匿名打包------------");  
  16.              //打包成单个Json对象  
  17.              var jsonStr1 = JsonConvert.SerializeObject(temClass);  
  18.    
  19.              Console.WriteLine("打包单个对象后:\n{0}", jsonStr1);  
  20.              Console.WriteLine();  
  21.    
  22.              //打包成Json数组  
  23.              var jsonStr2 = JsonConvert.SerializeObject(new[] { temClass,temClass });  
  24.    
  25.              Console.WriteLine("打包Json数组后:\n{0}", jsonStr2);  
  26.              Console.WriteLine();  
  27.    
  28.              //----------------------匿名解包-------------------//  
  29.              Console.WriteLine("----------通过匿名解包------------");  
  30.              //匿名解包  
  31.              var temClass2 = JsonConvert.DeserializeAnonymousType(jsonStr1, temClass);  
  32.              Console.WriteLine("匿名解包后:\n Name={0},Age={1},Addr={2}",temClass2.Name,temClass2.Age,temClass2.Addr);  
  33.              Console.WriteLine();  
  34.    
  35.              //提取局部信息  
  36.              var temClass3 = JsonConvert.DeserializeAnonymousType(jsonStr1, new { Name = name, Addr = addr });  
  37.              Console.WriteLine("匿名解包局部信息后: \n Name={0},Addr={1}", temClass3.Name, temClass3.Addr);  
  38.              Console.WriteLine();  
  39.    
  40.              //解包成数组对象【jsonStr2:数组对象】  
  41.              var temClass4 = JsonConvert.DeserializeAnonymousType(jsonStr2, new[] { temClass });  
  42.              //数组 foreach循环遍历  
  43.              foreach(var item in temClass4)  
  44.              {  
  45.                  Console.WriteLine("匿名解包为数组后: \n Name={0},Age={1},Addr={2}",item.Name,item.Age,item.Addr);  
  46.              }  
  47.              Console.WriteLine();  
  48.    
  49.              //----------------------通过类打包-------------------//  
  50.              //实例化一个类对象  
  51.              MyObj mo = new MyObj() { Name = name, Age = age, Addr = addr };  
  52.    
  53.              Console.WriteLine("----------通过类打包------------");  
  54.              //单个对象打包  
  55.              var temClass5 = JsonConvert.SerializeObject(mo);  
  56.              Console.WriteLine("类打包后:\n{0}", temClass5);  
  57.              Console.WriteLine();  
  58.    
  59.              //打包成集合(数组 泛型)  
  60.              var temClass6 = JsonConvert.SerializeObject(new[] { mo,mo });  
  61.              Console.WriteLine("类打包成数组后:\n{0}", temClass6);  
  62.              Console.WriteLine();  
  63.    
  64.              var temClass7=JsonConvert.SerializeObject(new List<MyObj>{mo,mo});  
  65.              Console.WriteLine("类打包成泛型后:\n{0}", temClass6);  
  66.              Console.WriteLine();  
  67.    
  68.              Console.WriteLine("----------通过类解包------------");  
  69.    
  70.              var temClass8 = JsonConvert.DeserializeObject<MyObj>(temClass5);  
  71.              Console.WriteLine("类解包单个对象后:\n Name={0},Age={1},Addr={2}", temClass8.Name, temClass8.Age, temClass8.Addr);  
  72.              Console.WriteLine();  
  73.    
  74.              var temClass9 = JsonConvert.DeserializeObject<List<MyObj>>(temClass6);  
  75.              foreach(MyObj item in temClass9)  
  76.              {  
  77.                  Console.WriteLine("类解包泛型后:\n Name={0},Age={1},Addr={2}", item.Name, item.Age, item.Addr);  
  78.              }  
  79.    
  80.              Console.ReadKey();  
  81.               
  82.          }  
  83.      }  
  84.    
  85.      //定义一个类型  
  86.      public class MyObj  
  87.      {  
  88.          public string Name { get; set; }  
  89.          public int Age { get; set; }  
  90.          public string Addr { get; set; }  
  91.      }  
  92.  } 

效果图:

 

原文链接:http://www.cnblogs.com/holyknight-zld/archive/2012/08/22/ajaxSummary.html


原创粉丝点击