.net下两种json序列化速度比对(已添加源代码下载地址)

本文对比了使用Newtonsoft.Json.dll与XSLT进行DataTable序列化为JSON的速度,结果显示,对于小规模数据,两者表现接近;而随着数据量增加,JSON.DLL展现出明显优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近研究JSON,想把datatable直接序列化为json,上网查了查,发现.net下有这么两种json序列化的方法:

一是用Newtonsoft.Json.dll进行json序列化,这个从json的官网上就可以找到,使用比较方便。

二是用xml-2-json.xsl这个xslt模板转换,详细请看这里http://blog.youkuaiyun.com/isaaq/archive/2006/12/09/1436357.aspx

两种序列话方法都可以达到要求,但是我想看一下两种分别的速度如何,于是自己写个程序试一下。

生成datatable的代码如下

private DataTablegetDataTable( string name)
... {
DataTabledt
=newDataTable(name);
dt.Columns.Add(
newDataColumn("name",typeof(string)));
dt.Columns.Add(
newDataColumn("password",typeof(string)));
DataRowdr;
for(inti=0;i<100;i++)
...{
dr
=dt.NewRow();
dr[
0]=i.ToString();
dr[
1]="P"+i.ToString();
dt.Rows.Add(dr);
}

returndt;

}


其中循环次数分别是10,100,1000,1000,然后看一下两种方法的序列话速度。结果见下表

JSON.DLLXSLT
100毫秒31.25毫秒
10015.625毫秒31.25毫秒
100046.875毫秒140.625毫秒
100009531.25毫秒31218.75毫秒

程序写的并不严谨,只是简单比对一下速度而已,数据都是多次运行取的相当稳定的值而已,并不能说明具体时间。有一个奇怪的现象是,循环次数为10000时,用XSLT转换一般都是30秒左右,但有时会有10秒左右的现象出现,不知是什么原因。

有需要源代码的朋友请留下邮箱,我会尽快发过去的。另外想请大家帮忙看一下我用json.dll序列化datatable的方法是否正确,我是把datatable转换为xml,然后用json.dll转换xml为json,不知道有没有更好的方法,谢谢大家。

源代码已经上传到http://download.youkuaiyun.com/user/luq885/,请自行下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值