C#中将查询的结果集使用json序列化并传输后反序列化

来源:互联网 发布:在农村开淘宝怎么赚钱 编辑:程序博客网 时间:2024/04/26 00:39

做C#项目,客户端需要查询数据库,提交指令方法,返回结果集。可是结果集无法传输,只能使用Json序列化后传输,可是找不到好方法打包和解包结果集,只能自己苦思冥想啦,终于有点点儿小成大笑,这儿和大家分享下。

首先使用Json,需要引用System.Web.Script.Serialization

有些时候在引用 System.Web.Script.Serialization 的时候会出现问题,有两点需要解决:

1.需要项目中引用System.Web.Extensions.dll,这个东西在系统的.Net文件夹下,自己搜索添加引用吧

2.添加引用后可能会有警告框架问题,需要在项目的属性中将目标框架改为.NET Framework 2.0+,当然如果你使用2.0或者3.0,好像还要手动下载

ASP.NET AJAX Extensions,如果用3.5,4.0就直接包含啦

好啦,接下来可是使用Json啦~~~

首先是测试类:

    public class Customer    {        public int Unid { get; set; }        public string CustomerName { get; set; }    }

接下来是使用方法:

这儿只给出了测试,还望大家体谅,方法都是一样的

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web.Script.Serialization;using WindowsFormsApplication1;using System.Threading;using System.Collections;namespace ConsoleApplication1{    class Program    {//         public static string ScriptSerialize(Customer customer)//         {//             JavaScriptSerializer js = new JavaScriptSerializer();//             return js.Serialize(customer);//         }// //         public static Customer ScriptDeserialize(string strJson)//         {//             JavaScriptSerializer js = new JavaScriptSerializer();//             return js.Deserialize<Customer>(strJson);//         }//         //方法泛型//         public string ScriptSerialize<T>(T t)//         {//             JavaScriptSerializer js = new JavaScriptSerializer();//             return js.Serialize(t);//         }// //         public T ScriptDeserialize<T>(string strJson)//         {//             JavaScriptSerializer js = new JavaScriptSerializer();//             return js.Deserialize<T>(strJson);//         }        static void Main(string[] args)        {            Customer a = new Customer { Unid = 1, CustomerName = "John" };            Customer b = new Customer { Unid = 2, CustomerName = "Teddy" };            ArrayList aList = new ArrayList();            aList.Add(a);            aList.Add(b);            JavaScriptSerializer js = new JavaScriptSerializer();            //序列化到json            string strJson = js.Serialize(aList);            Console.WriteLine(strJson);            Thread.Sleep(2000);            //反序列化            ArrayList c1 = new ArrayList();            c1 = js.Deserialize<ArrayList>(strJson);            Customer c;            foreach (object i in c1)            {                c = js.ConvertToType<Customer>(i);                Console.WriteLine(c.Unid+" "+c.CustomerName);            }            Thread.Sleep(50000);        }    }}
很少写技术博客,各位大神,多多提点呀~

原创粉丝点击