首页 > 编程语言 > 详细

Swifter.Json简介

时间:2021-06-15 09:40:08      阅读:25      评论:0      收藏:0      [点我收藏+]

 Json就不多做介绍了,Newtonsoft.Json相信大家也都用过了。今天给大家介绍另外一款json的序列化工具Swifter.Json。

GitHub地址:https://github.com/Dogwei/Swifter.Json/wiki

Wiki地址:https://github.com/Dogwei/Swifter.Json

Swifter.Json 强大之处
1:支持 .Net 已知所有对象结构,包括深度循环结构,引用类型属性等。
2:支持几乎所有常用的数据类型,并多方案轻松自定义类型的序列化行为,后续将持续增加。
3:支持缩进 Json,忽略 Null 值 0 值 "" 值等,支持使用 { "$Ref" : "#/Target" } 表示重复引用,或将循环引用序列化为 Null 等,支持设置最大深度。
4:支持 .Net Core 2.0+,.Net Framework 2.0+,.Net Standard 2.0+,Xamarin,Unify,Mono 等平台。
5:Swifter.Json 几乎是无 BUG 的,因为它已有多个上线项目在运行,且每次发布都会经过我们自己单元测试和 Newtonsoft.Json 和 Spanjson 的单元测试来确保它的稳定性,如果您遇到了问题,可以在 Github 上发布一个 issue,我们会尽力帮助您。
6:完整全面的 API 中文文档,每个公开的类型和方法都有中文说明,也有 Github 上的 Wiki 文档 (现主要维护文档)。
 
 技术分享图片

 

部分 .Net 现有的 JSON 工具性能对比

.Net Core 3.0 Previews running results.

技术分享图片

.Net Framework 4.7.1 Previews running results.

技术分享图片

本人测试Swifter.Json 与 Newtonsoft.Json,超过百万次后Swifter.Json的性能是Newtonsoft.Json的三到五倍。

简单使用

 新建一个Demo类

 public class Demo
 {
     public int Id { get; set; }
    public string FirstName { get; set; }
    public DateTime CreateTime { get; set; }
 }
 //1、基本使用
 //序列化一个对象为json
 var json = JsonFormatter.SerializeObject(new { Id = 1, FirstName = "Ma", CreateTime =DateTime.Now});
 var dic = JsonFormatter.DeserializeObject<Demo>(json);

  //2、日期格式的处理
  var jsonFormatter2 = new JsonFormatter();
  jsonFormatter2.SetDateTimeFormat("yyyy-MM-dd HH:mm:ss"); //设置json中日期为统一格式
  Demo de2 = new Demo { Id = 1, FirstName = "", CreateTime = DateTime.Now };
  var json2 = jsonFormatter2.Serialize<Demo>(de2);

  //也可以在上面的实体类属性上设置

  [RWFormat("yyyy-MM-dd HH:mm:ss")]

    public DateTime CreateTime { get; set; }

 

 //3、字段特殊处理
 var jsonFormatter3 = new JsonFormatter(
              JsonFormatterOptions.IgnoreNull // 忽略 Null 值
              | JsonFormatterOptions.IgnoreZero // 忽略基础类型的 0 值
              | JsonFormatterOptions.IgnoreEmptyString // 忽略字符串 "" 值
     );
 jsonFormatter3.SetDateTimeFormat("yyyy-MM-dd HH:mm:ss");
 Demo de3 = new Demo { Id = 1, FirstName = "ss", CreateTime = DateTime.Now };
 var json3= jsonFormatter3.Serialize<Demo>(de3);

其他使用方式可以去Wiki上查看,总体跟Newtonsoft.Json使用方式大同小异。

 

才疏学浅,相关文档等仅供自我总结,如有相关问题可留言交流谢谢。

 

Swifter.Json简介

原文:https://www.cnblogs.com/mzflog/p/14875290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!