在这里,创建具有长属性名称的POCO非常常见,例如“WarnIfAnyAmountInDebtLongerThan30Days”,并且一些列表最多有1k项,这导致1MB Json被缓存/转移...
我想知道是否有办法告诉JSON.Net,而不是使用那个巨大的属性名称进行序列化,将其压缩为“P1”(例如),创建某种内部字典以供以后反序列化...
这可能吗?或者我是否必须计划B并创建另一个具有减少的属性名称的POCO并使用映射器来回...
编辑1:
创建一个别名不是我想要的,因为我有成千上万的javascripts和其他移动部分,具体取决于该属性名称......我只想在序列化缓存时“压缩”它!
答案 0 :(得分:0)
取决于您在反序列化方面的用法。您可以尝试BSon这是一个二进制JSon,允许您减少传输的数据量......
http://www.newtonsoft.com/json/help/html/SerializeToBson.htm
答案 1 :(得分:0)
您可以使用JsonProperty
属性装饰POCO,并指定Json中应使用的字段名称...
[JsonProperty("S1")]
public string SomeReallyVeryLongName {get; set;}
}
文档:https://www.newtonsoft.com/json/help/html/JsonPropertyName.htm
这必须在您所有的POCO上完成,但这是一次性的,一致的,可预测的和机器可读的。