【发布时间】:2009-12-17 05:23:43
【问题描述】:
我在 C# 中有一个类结构,类似于以下内容:
[DataContract]
class Data
{
[DataMember] public List<Hotel> Hotels { get; set; }
// etc...
}
[DataContract]
class Hotel
{
[DataMember] public int HotelID { get; set; }
[DataMember] public string HotelName { get; set; }
// etc...
}
我一直在使用“DataContractJsonSerializer”将其序列化为 JSON。
但是,由于 JSON 包含所有属性名称,因此会产生大量冗余文本。
(你可能会说 gZip 缓解了这个问题,但我相信 gZip 只压缩了输出的一部分,比如前 n KB,所以在这种情况下,它并没有真正的帮助。)
所以我更喜欢以 Javascript 数组的格式输出数据,如下所示:
[[1, "firstHotel"], [2, "secondHotel"], [3, "thirdHotel"], ...]
有没有办法自定义 JSON 序列化来做到这一点?还是我应该手动编写自己的序列化程序?
【问题讨论】:
-
我发现一种名为“JSONDB”的格式非常适合这种情况:peter.michaux.ca/articles/json-db-a-compressed-json-format
-
gzip 会压缩您提供的所有内容,而不仅仅是前 N KB。但是,它还添加了一个不小的标题。
-
你可以编写自己的序列化器:)
标签: c# asp.net json serialization