从类集合中序列化所选属性

时间:2014-10-30 14:59:31

标签: c# .net json json.net

在C#中,我有一个集合类(FeatureCollection),我想在其中序列化为JSON并将其返回给调用者。 Feature类包含5个属性,但调用者只需要2.因为我非常关注响应时间和性能,并且因为我的目标是最小化我发送的数据的大小,我想知道是否有办法发送最小化的'集合的版本(在修剪不需要的属性之后),而无需手动实现新的最小化类。我之所以不想创建一个新的最小化类并将其映射到原始类,只是为了让我的代码保持干燥和清洁。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

使用匿名类型会为你工作吗?

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