当前位置: 首页 > news >正文

柳州 网站推广西安有什么好玩的游乐园

柳州 网站推广,西安有什么好玩的游乐园,中国商务网官网,网站开发应用开发以下是 C# 中常见 JSON 库的对比(包括 Newtonsoft.Json、System.Text.Json、Utf8Json、Jil、ServiceStack.Text),并附上等效的序列化/反序列化代码示例。 1. Newtonsoft.Json (Json.NET) 特点 功能最全面,支持动态类型、多态序列化…

以下是 C# 中常见 JSON 库的对比(包括 Newtonsoft.Json、System.Text.Json、Utf8Json、Jil、ServiceStack.Text),并附上等效的序列化/反序列化代码示例。


1. Newtonsoft.Json (Json.NET)

  • 特点

    • 功能最全面,支持动态类型、多态序列化、循环引用等复杂场景。
    • 灵活的配置选项(如忽略空值、自定义转换器)。
    • 性能中等,适用于大多数通用场景。
  • 代码示例

    // 序列化
    var obj = new { Name = "Alice", Age = 30 };
    string json = JsonConvert.SerializeObject(obj, new JsonSerializerSettings
    {NullValueHandling = NullValueHandling.Ignore,Formatting = Formatting.Indented
    });// 反序列化
    var result = JsonConvert.DeserializeObject<MyClass>(json);
    

2. System.Text.Json (官方库)

  • 特点

    • 高性能(基于 Span 和 Utf8JsonReader/Writer)。
    • 内存占用低,适合高并发场景。
    • 功能逐步完善(.NET 7+ 支持更多特性如多态序列化)。
  • 代码示例

    // 序列化
    var obj = new MyClass { Name = "Alice", Age = 30 };
    string json = JsonSerializer.Serialize(obj, new JsonSerializerOptions
    {WriteIndented = true,DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,PropertyNamingPolicy = JsonNamingPolicy.CamelCase
    });// 反序列化
    var result = JsonSerializer.Deserialize<MyClass>(json);
    

3. Utf8Json

  • 特点

    • 极高性能(基于零分配和预编译IL生成)。
    • 支持异步流式处理。
    • 需要预生成代码或手动编写解析逻辑。
  • 代码示例

    // 安装 NuGet 包 Utf8Json
    [DataContract]
    public class MyClass
    {[DataMember(Name = "name")]public string Name { get; set; }[DataMember(Name = "age")]public int Age { get; set; }
    }// 序列化
    byte[] jsonBytes = Utf8Json.JsonSerializer.Serialize(obj);
    string json = Encoding.UTF8.GetString(jsonBytes);// 反序列化
    var result = Utf8Json.JsonSerializer.Deserialize<MyClass>(jsonBytes);
    

4. Jil

  • 特点

    • 高性能(基于动态方法生成)。
    • 配置简单,但功能较少(不支持复杂类型如动态对象)。
    • 适合严格的静态类型场景。
  • 代码示例

    // 安装 NuGet 包 Jil
    var obj = new MyClass { Name = "Alice", Age = 30 };// 序列化
    string json = Jil.JSON.Serialize(obj, Options.CamelCase);// 反序列化
    var result = Jil.JSON.Deserialize<MyClass>(json);
    

5. ServiceStack.Text

  • 特点

    • 高性能,支持多种数据格式(JSON、CSV等)。
    • 配置灵活,支持自定义序列化规则。
    • 部分功能需商业许可。
  • 代码示例

    // 安装 NuGet 包 ServiceStack.Text
    var obj = new MyClass { Name = "Alice", Age = 30 };// 序列化
    string json = ServiceStack.Text.JsonSerializer.SerializeToString(obj);// 反序列化
    var result = ServiceStack.Text.JsonSerializer.DeserializeFromString<MyClass>(json);
    

对比总结

性能功能丰富性易用性适用场景
Newtonsoft.Json最全面复杂类型、旧项目维护
System.Text.Json中等(逐步增强)中等新项目、高性能需求
Utf8Json极高极致性能、流式处理
Jil简单静态类型、快速序列化
ServiceStack.Text中等中等多格式支持、商业项目(需许可)

等效代码对比(序列化忽略空值)

  1. Newtonsoft.Json

    JsonConvert.SerializeObject(obj, new JsonSerializerSettings 
    { NullValueHandling = NullValueHandling.Ignore 
    });
    
  2. System.Text.Json

    JsonSerializer.Serialize(obj, new JsonSerializerOptions 
    { DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull 
    });
    
  3. Utf8Json

    // 需手动标记属性或自定义解析器
    [DataMember(EmitDefaultValue = false)]
    public string Name { get; set; }
    
  4. Jil

    JSON.Serialize(obj, Options.IncludeInherited); // 不支持直接忽略空值
    

选择建议

  • 优先 System.Text.Json:新项目、性能敏感、减少依赖。
  • Newtonsoft.Json:需要动态类型或复杂序列化逻辑。
  • Utf8Json/Jil:追求极限性能(需权衡功能缺失)。
  • ServiceStack.Text:多格式处理或已有项目迁移。

根据实际需求权衡性能、功能和开发效率!

http://www.dtcms.com/a/417115.html

相关文章:

  • 网站模板下载后怎么使用wordpress微信分享带缩略图
  • 做进料加工在哪个网站上做7k网站怎么做
  • 潍坊网站建设电话岳麓书院网页制作
  • ps临摹网站网站开发企业排名
  • 想开发个网站微网站开发程序
  • 织梦网站栏目访问目录企业的网站公告怎么制作
  • 网站的经费预算国外社交网站设计欣赏
  • 如何看一个网站是谁做的.net 网站生成安装文件目录
  • 海口网站建设工作销售公司简介模板
  • 网络推广网站套餐米特号类似网站
  • 建设网站的南京网站制作步骤
  • 济南中京网站建设公司js开发安卓app
  • 网站建设与管理插图上海地图
  • 建设部网站上查不到资质的企业wordpress小说主题模板下载地址
  • 宁波江东区网站建设wordpress设置导航栏
  • 企业内部网络属于什么网络sem与seo
  • 网站群建设技术方案微信官网客户端
  • 企业建网站得多少钱展览中心网站建设
  • 电子商务网站建设策划书网站类型推广广告赚佣金
  • 南充网站建设服务商网站开发 男生
  • 保护动物网站建设策划书汕头专业网站建设公司
  • 网站建设 中企动力 东莞动漫网页设计版式
  • 德国 网站 后缀十大软件公司
  • 医疗器械外贸网站建设百度平台商家我的订单查询
  • 北京电商网站建设关键词优化排名易下拉软件
  • 什么是网页设计与网站建设给装修公司做推广的网站
  • edu网站一般谁做的网站开发方案书博客
  • jsp网站开发技术建设信用卡登录中心网站
  • 江苏省建设信息网站管理平台专门做钣金的网站
  • vs2015网站开发基础样式一级注册工程师