【问题标题】:Skip properties in mvc json result跳过 mvc json 结果中的属性
【发布时间】:2011-08-12 22:30:10
【问题描述】:

通过控制器的方法将我的对象转换为 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,"Name":"Peter Parker","SecretAlterEgoName":"蜘蛛侠"}

而是显示这个: {"PersonId":3,"Name":"彼得·帕克"}

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

【问题讨论】:

    标签: c# json model-view-controller


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多