仅将父级和子级的一些属性序列化为JSON

时间:2012-06-18 10:47:50

标签: c# json serialization

假设我有两个这样的类:

public class Parent
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public IList<Child> Children { get; set; }
    ...
}

public class Child
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Gender { get; set; }
    public string Age { get; set; }
    ...
}

如果我想序列化Parent的某些属性,我可以这样做:

var data = GetListOfParents();
return Json(data.Select(x => new { x.Id, x.Name}));

如果我想获得如上所述的父母列表,但每个Parent包含一个仅包含IdName等选定属性的子列表,那么正确的方法是什么?

我不想使用[ScriptIgnore]因为我的实体包含很多属性。

谢谢

1 个答案:

答案 0 :(得分:0)

你可以这样做:

data.Select(x => new
    {
        x.Id,
        x.Name,
        Children = x.Children.Select(y => new
            {
                y.Id,
                y.Name
            })
    });