发布JsonFileConvert类库用于list和json格式文件相互转换

JsonFileConvert

将大数据量list 转换为json文本文件和将大数据量json文本文件(GB大小也不在话下)转换为list的类库

0 适用场景

可用于将单个表结构数据导出为json格式文本文件,内部实用了批次处理所以支持大数据list序列化,
将json格式文本文件反序列化为list,json文本文件大小不受限制,读取文本文件采用了数据块读取技术,否则的将文本文件全部加载到内存里面容易耗尽 内存。
反序列化后的数据list稍作加工就可以方便导入到表中。
100万对象的序列化后生成的文本文件大概有500~8000M,实际看类的复杂程度,压缩后也就10M左右。

1 依赖要求

C# .netFramework2.0 以上,目前依赖于Swifter.json类库,因为目前序列化和反序列化这个类库效率最高,测试里面有对比Newtonsoft.json和FastJson

2 类库代码结构

JsonFileConvert项目为发布使用类库,Test项目用于各个json组件跑测试。

3 Newtonsoft.json,Swifter.json,fastJson 序列化为json文件时间对比

10万个object的List序列化为json文本文件耗时对比列表,单位(秒)

次数Newtonsoft.jsonSwifter.jsonfastJson
12.651.784.22
22.871.534.42
32.893.96.96
43.661.624.70
53.321.976.83
63.461.593.45
72.991.666.39
83.111.503.18
100万个object的List序列化为json文本文件耗时对比列表,单位(秒),100w比较稳定只测试3次足够
次数Newtonsoft.jsonSwifter.jsonfastJson
146.1440.8150.51
243.7534.5950.01
341.9138.2351.99

4 Newtonsoft.json,Swifter.json,fastJson 将文本json文件反序列化为list时间对比

10万个jsonString的文本文件反序列化时间对比单位(秒),测试8次
次数Newtonsoft.jsonSwifter.jsonfastJson
116.536.839.57
215.976.768.91
316.486.359.14
417.556.699.27
517.845.859.14
617.206.269.19
714.826.569.64
817.056.109.47
100万个jsonString的文本文件反序列化时间对比单位(秒),测试3次
次数Newtonsoft.jsonSwifter.jsonfastJson
1178.8153.3288.61
2158.8952.0189.13
3140.7256.8383.11

经过测试比对发现Swifter.json做序列化和反序列化效率突出,所以这类库选择了它作为依赖组件。

5 测试代码说明

Test项目Program->  SaveTest(JsonToolType.Newtonsoft); 方法为测试将list序列化后保存为json.txt文本文件,可以修改里面的生成list数量来测试
Test项目Program->   ConvertTest(JsonToolType.FastJson);方法为测试将json.txt文本文件反序列化为list
JsonToolType枚举类型定义如下
     public enum JsonToolType
    {
        Newtonsoft = 1,
        Swifter = 2,
        FastJson = 3,
    }

类库github地址: https://github.com/SaFaJim/JsonFileConvert

最后感谢Swifter.json 作者提供帮助,Swifter.json github的地址为 https://github.com/Dogwei/Swifter JsonFileConvert类库有问题请提交说明或者发邮件到1812813640@qq.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨4点5杀老大爷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值