长篇大论来讲述什么是AJAX,怎么使用AJAX,这样我总觉得太理论化了,接受起来会有一定的难度...所以,本篇博客的另一个主旨是:从实例入手,由浅到深。
实例五[补充内容]:Json格式数据的打包和解包方式
在打包和解包中,我们仍旧用到了上面提及的Json数据API,同样要先添加引用,由于代码都有了对应的注释,不再多做文字的赘述,直接贴上代码和效果吧:
代码:
- namespace Json打包解包方式
- {
- class Program
- {
- static void Main(string[] args)
- {
- string name = "zld";
- int age = 23;
- string addr = "nb";
- //----------------------匿名打包-------------------//
- //创建匿名类型
- var temClass = new { Name = name, Age = age, Addr = addr };
- Console.WriteLine("----------通过匿名打包------------");
- //打包成单个Json对象
- var jsonStr1 = JsonConvert.SerializeObject(temClass);
- Console.WriteLine("打包单个对象后:\n{0}", jsonStr1);
- Console.WriteLine();
- //打包成Json数组
- var jsonStr2 = JsonConvert.SerializeObject(new[] { temClass,temClass });
- Console.WriteLine("打包Json数组后:\n{0}", jsonStr2);
- Console.WriteLine();
- //----------------------匿名解包-------------------//
- Console.WriteLine("----------通过匿名解包------------");
- //匿名解包
- var temClass2 = JsonConvert.DeserializeAnonymousType(jsonStr1, temClass);
- Console.WriteLine("匿名解包后:\n Name={0},Age={1},Addr={2}",temClass2.Name,temClass2.Age,temClass2.Addr);
- Console.WriteLine();
- //提取局部信息
- var temClass3 = JsonConvert.DeserializeAnonymousType(jsonStr1, new { Name = name, Addr = addr });
- Console.WriteLine("匿名解包局部信息后: \n Name={0},Addr={1}", temClass3.Name, temClass3.Addr);
- Console.WriteLine();
- //解包成数组对象【jsonStr2:数组对象】
- var temClass4 = JsonConvert.DeserializeAnonymousType(jsonStr2, new[] { temClass });
- //数组 foreach循环遍历
- foreach(var item in temClass4)
- {
- Console.WriteLine("匿名解包为数组后: \n Name={0},Age={1},Addr={2}",item.Name,item.Age,item.Addr);
- }
- Console.WriteLine();
- //----------------------通过类打包-------------------//
- //实例化一个类对象
- MyObj mo = new MyObj() { Name = name, Age = age, Addr = addr };
- Console.WriteLine("----------通过类打包------------");
- //单个对象打包
- var temClass5 = JsonConvert.SerializeObject(mo);
- Console.WriteLine("类打包后:\n{0}", temClass5);
- Console.WriteLine();
- //打包成集合(数组 泛型)
- var temClass6 = JsonConvert.SerializeObject(new[] { mo,mo });
- Console.WriteLine("类打包成数组后:\n{0}", temClass6);
- Console.WriteLine();
- var temClass7=JsonConvert.SerializeObject(new List<MyObj>{mo,mo});
- Console.WriteLine("类打包成泛型后:\n{0}", temClass6);
- Console.WriteLine();
- Console.WriteLine("----------通过类解包------------");
- var temClass8 = JsonConvert.DeserializeObject<MyObj>(temClass5);
- Console.WriteLine("类解包单个对象后:\n Name={0},Age={1},Addr={2}", temClass8.Name, temClass8.Age, temClass8.Addr);
- Console.WriteLine();
- var temClass9 = JsonConvert.DeserializeObject<List<MyObj>>(temClass6);
- foreach(MyObj item in temClass9)
- {
- Console.WriteLine("类解包泛型后:\n Name={0},Age={1},Addr={2}", item.Name, item.Age, item.Addr);
- }
- Console.ReadKey();
- }
- }
- //定义一个类型
- public class MyObj
- {
- public string Name { get; set; }
- public int Age { get; set; }
- public string Addr { get; set; }
- }
- }
效果图:
原文链接:http://www.cnblogs.com/holyknight-zld/archive/2012/08/22/ajaxSummary.html