【问题标题】:ASP.NET API return part of object as jsonASP.NET API 将对象的一部分作为 json 返回
【发布时间】:2015-10-23 06:16:12
【问题描述】:

我正在使用 ASP.NET API,并且我希望从控制器返回一个对象,到目前为止我一直在使用 return Ok(item);

这将返回该项目的所有属性,但是我想从中返回选定的属性,例如名称和日期,而不是所有内容。

我怎样才能做到这一点?

【问题讨论】:

    标签: asp.net json api rest controller


    【解决方案1】:

    你可以使用匿名类型;应该可以正常工作:

    return Ok(new { name = item.Name, date = item.Date});
    

    如果没有,您可以简单地创建一个具有名称/日期属性的类;就像您返回 item 并将其序列化为 JSON 对象一样,匿名和自定义类也可以序列化。

    编辑:如果你有一个内部集合,你也可以通过以下方式生成一个子集:

    new { 
          name = item.Name, 
          moreitems = item.subitems.Select(i => new { name = i.Name, etc })
    }
    

    或者,这是创建具有属性子集的视图模型可能有益的地方,以简化流程。

    【讨论】:

    • 但是如果我有 item.MoreItems 并想从其中删除一个属性怎么办?
    • 查看我的编辑,您可以使用 LINQ 选择,并获取您想要的字段。没有简单的方法可以删除属性;本质上你必须用你想要的属性重新创建一个对象......你可以使用 LINQ,或者创建一个只有你想要的属性的视图模型,然后从源代码构建它。
    • 出色的正是我想要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2021-03-09
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多