您的位置:首页 > Web前端 > JavaScript

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

2013-08-22 14:54 316 查看
做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
4000
>(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);
}
}
}
很少写技术博客,各位大神,多多提点呀~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# Json 序列化 结果集
相关文章推荐