.NET BCL中是否有现成的Json Serialization助手类?

时间:2008-12-24 10:04:41

标签: .net json serialization

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

我想到的第一件事是.NET可能有JSON Serializer,但我找不到它。在.NET中是否有任何现成的方法将对象转换为简洁的字符串?

6 个答案:

答案 0 :(得分:26)

有两个;

以传统方式,它们彼此不是100%兼容,尤其是重新DateTime; DCJS使用(IIRC)文字字符串; JSS使用new - 两者都无法正确阅读。

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

答案 1 :(得分:10)

Json.Net是.NET的JSON库。它可以在CodePlex中使用。

答案 2 :(得分:4)

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

基本示例

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

只需使用自己的api ..它很容易创建json ..但你也可以使用像JSON.NET这样的JSON库..

快乐编码

答案 5 :(得分:0)

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