我需要序列化/反序列化一些對象進/出字符串,並將它們作爲不透明數據傳輸。我可以使用XmlSerializer來完成它,但生成的字符串看起來笨拙而且很長。那麼,.NET中是否有簡潔的Serializer?.NET BCL中是否有任何現成的Json序列化助手類?
我想到的第一件事情是.NET可能有JSON串行器,但我找不到它。 .NET中是否有任何現成的方法將對象轉換爲簡潔字符串?
我需要序列化/反序列化一些對象進/出字符串,並將它們作爲不透明數據傳輸。我可以使用XmlSerializer來完成它,但生成的字符串看起來笨拙而且很長。那麼,.NET中是否有簡潔的Serializer?.NET BCL中是否有任何現成的Json序列化助手類?
我想到的第一件事情是.NET可能有JSON串行器,但我找不到它。 .NET中是否有任何現成的方法將對象轉換爲簡潔字符串?
有兩個;
在傳統的方式
DateTime
; DCJS使用(IIRC)一個文字字符串; JSS使用new
- 並且都不能正確讀取其他人。當然,如果文本如果不透明,你也可以使用任何簡潔的二進制串行器,並且只需base-64編碼;例如,protobuf-net非常簡潔。但是使用JSON可以最大限度地減少每端所需的外部代碼,所以很可能是您最好的選擇。LINQ To Json可以序列化和反序列化。
Json.Net是.NET的JSON庫。它在CodePlex中可用。
只需使用自己的API ..它很容易創建json的..但是你也可以使用JSON庫,例如JSON.NET ..
編碼快樂
JsonFx.NET有一個開放源代碼的串行允許序列化到/強類型的類可能是你正在尋找。您可以控制日期序列化的方式並覆蓋序列化的很多方面。它甚至通過支持匿名對象的序列化與Linq良好地交互。這個API就像.NET XML序列化一樣工作。
我有一個非常快開源JsonSerializer可用,可以系列化任何POCO或DataContract類型,包括接口匿名和後期綁定的類型等
基本示例
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = JsonSerializer.SerializeToString(customer);
var fromJson = JsonSerializer.DeserializeFromString<Customer>(json);
根據MSDN, JavaScriptSerializer位於.NET 3.5中的System.Web.Extensions.dll中,不一定是.NET 3.5 SP1。 – 2008-12-25 02:07:21