我需要将一些对象序列化/反序列化为字符串,并将它们作为不透明数据传输。我可以使用XmlSerializer来完成它,但生成的字符串看起来很笨拙。那么,.NET中是否有任何简洁的Serializer?
我想到的第一件事是.NET可能有JSON Serializer,但我找不到它。在.NET中是否有任何现成的方法将对象转换为简洁的字符串?
答案 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序列化一样工作。