【问题标题】:Is there Any Off-The-Shelf Json Serialization helper class in .NET BCL?.NET BCL 中是否有任何现成的 Json 序列化帮助程序类?
【发布时间】:2026-01-25 16:35:02
【问题描述】:

我需要将一些对象序列化/反序列化到字符串中,并将它们作为不透明数据传输。我可以使用 XmlSerializer 来做到这一点,但生成的字符串看起来笨拙而冗长。那么,.NET 中是否有任何简洁的 Serializer 可用?

我首先想到的是,也许 .NET 应该有 JSON 序列化器,但我找不到它。 .NET 中是否有任何现成的方法可以将对象转换为/从简明字符串?

【问题讨论】:

    标签: .net json serialization


    【解决方案1】:

    LINQ To Json可以序列化和反序列化。

    【讨论】:

      【解决方案2】:

      Json.Net 是一个用于 .NET 的 JSON 库。它在 CodePlex 中可用。

      【讨论】:

        【解决方案3】:

        有两个;

        在传统方式中,它们不是 100% 相互兼容的,尤其是DateTime; DCJS 使用 (IIRC) 文字字符串; JSS 使用new - 两者都无法正确读取。

        当然,如果文本不透明,你也可以使用任何简洁的二进制序列化器,并简单地进行base-64编码;例如,protobuf-net 非常简洁。但是使用 JSON 可以最大限度地减少每一端所需的外部代码,因此可能是您最好的选择。

        【讨论】:

        • 根据 MSDN,JavaScriptSerializer 在 System.Web.Extensions.dll 中,它在 .NET 3.5 中可用,不一定是 .NET 3.5 SP1。
        • IIRC,它已被标记为过时,并且最近在 3.5 SP1 中被“弃用”。
        【解决方案4】:

        只需使用您自己的 api.. 它很容易创建 json.. 但您也可以使用 JSON.NET 等 JSON 库..

        快乐编码

        【讨论】:

          【解决方案5】:

          JsonFx.NET 有一个开源序列化程序,它允许序列化到/从强类型类,这可能是您正在寻找的。您可以控制日期的序列化方式并覆盖序列化的许多方面。它甚至通过支持匿名对象的序列化与 Linq 很好地交互。 API 的工作方式与 .NET XML 序列化类似。

          【讨论】:

            【解决方案6】:

            我有一个非常快可用的开源JsonSerializer,可以序列化任何 POCO 或 DataContract 类型,包括接口匿名和后期绑定类型等。

            基本示例

            var customer = new Customer { Name="Joe Bloggs", Age=31 };
            var json = JsonSerializer.SerializeToString(customer);
            var fromJson = JsonSerializer.DeserializeFromString<Customer>(json); 
            

            【讨论】:

              最近更新 更多