跳过mvc json结果中的属性

时间:2011-08-12 22:30:11

标签: c# json model-view-controller

如何通过控制器方法将对象转换为json时跳过某些属性?

public JsonResult GetPerson(int PersonId)
{
    Person thisPerson = Person.GetById(PersonId);
    return Json(thisPerson); //Please strip SecretAlterEgoName from your results please!
}

class Person
{
    int PersonId { get; set; }
    string Name { get; set; }
    string SecretAlterEgoName { get; set; } //Must not send this! No on must know!
}

我想避免这种情况:     {“PersonId”:3,“姓名”:“Peter Parker”,“SecretAlterEgoName”:“蜘蛛侠”}

而是显示:     {“PersonId”:3,“姓名”:“Peter Parker”}

我希望避免使用StringBuilder来生成我的json字符串,并避免创建一个具有较少属性的新对象来传输。

1 个答案:

答案 0 :(得分:4)

我有理由相信 - 但现在无法测试 - 您可以从匿名类型生成JSON,并且只包含您在创建类型时感兴趣的字段:

public JsonResult GetPerson(int PersonId)
{
    Person thisPerson = Person.GetById(PersonId);
    return Json(new { thisPerson.PersonId, thisPerson.Name });
}