我需要将一些对象序列化/反序列化成字符串,并将它们作为不透明数据传输。我可以使用XmlSerializer来完成,但生成的字符串看起来笨重且过长。那么,有没有在.NET中可用的简洁的序列化程序呢?
我首先想到的是,或许.NET应该有JSON序列化程序,但我找不到它。在.NET中是否有现成的方法将对象转换为/从精简字符串?
我需要将一些对象序列化/反序列化成字符串,并将它们作为不透明数据传输。我可以使用XmlSerializer来完成,但生成的字符串看起来笨重且过长。那么,有没有在.NET中可用的简洁的序列化程序呢?
我首先想到的是,或许.NET应该有JSON序列化程序,但我找不到它。在.NET中是否有现成的方法将对象转换为/从精简字符串?
有两种方法:
传统方式下,它们彼此之间并不完全兼容,特别是在处理 DateTime
类型时;DCJS使用(我记得是)字面字符串;JSS使用new
-两者都无法正确读取其他格式。
当然,如果文本是不透明的,则还可以使用任何简洁的二进制序列化程序,并将其base-64编码;例如,protobuf-net编码非常简洁。但是,使用JSON可以最大程度地减少每个端点需要的外部代码,因此可能是您最好的选择。
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = JsonSerializer.SerializeToString(customer);
var fromJson = JsonSerializer.DeserializeFromString<Customer>(json);
只需使用自己的API即可...创建JSON很容易...但您也可以使用像JSON.NET这样的JSON库...
编码愉快