序列化类集合中的选定属性

本文关键字:属性 集合 序列化 | 更新日期: 2023-09-27 18:28:23

在C#中,我有一个集合类(FeatureCollection),我想在其中序列化为JSON并将其返回给调用者。Feature类包含5个属性,但调用者只需要2个。由于我非常关心响应时间和性能,并且我的目标是最小化我发送的数据的大小,我想知道是否有一种方法可以在不手动实现新的最小化类的情况下发送集合的"最小化"版本(在修剪不需要的属性后)。我不喜欢创建一个新的最小化类并将其映射到原始类的原因只是为了保持代码的干燥和干净。

我想到的代码(显然不起作用)如下所示:

return JsonConvert.SerializeObject(myFeatureCollection.TrimProperties(typeof(Feature).GetProperties().ToList().Find(property => property.Name == "Property1" || property.Name == "property2")));

序列化类集合中的选定属性

使用Json.NET时,可以使用JsonIgnore属性:

public class Foo
{
    [JsonIgnore]
    public int Bar { get; set; }
}

使用匿名类型是否适用?

return JsonConvert.SerializeObject(myFeatureCollection.Select(x => new { x.Property1, x.Property2 }));