如何通过控制器方法将对象转换为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字符串,并避免创建一个具有较少属性的新对象来传输。
答案 0 :(得分:4)
我有理由相信 - 但现在无法测试 - 您可以从匿名类型生成JSON,并且只包含您在创建类型时感兴趣的字段:
public JsonResult GetPerson(int PersonId)
{
Person thisPerson = Person.GetById(PersonId);
return Json(new { thisPerson.PersonId, thisPerson.Name });
}