如何在 Web API 中返回相关数据,以便 json 不返回空值
本文关键字:返回 数据 以便 json 空值 Web API | 更新日期: 2023-09-27 17:57:07
namespace POS_Backend_.Controllers
{
public class hotelapiController : ApiController
{
private POSDBEntities db = new POSDBEntities();
// GET: api/hotelapi
public IList<HotelsDetailsDto> GetHotels()
{
return db.Hotels.Select(p => new HotelsDetailsDto
{ Id = p.Id,
Name = p.Name,
Address = p.Address,
Description = p.Description,
Offering = p.Offering,
Gps = p.Gps,
NumberOfRooms = p.NumberOfRooms,
Commission = p.Commission,
Rating = p.Rating,
HotelTypeName=p.HotelTypeName,
Image = p.Image,
LocationId = p.LocationId,
}).ToList();
}
我得到以下结果:
{
"Id": 2,
"Name": "Meilkles",
"Address": "samora machel avenue",
"Description": "luxury hotel",
"Offering": "swimming",
"Gps": "3672.22",
"NumberOfRooms": 5444,
"Commission": 65,
"HotelTypeName": "Lodge",
"Rating": 3,
"LocationId": 1,
"Image": "~/Banners/download(7).jpg",
"Comments": null,
"Favourites": null,
"Location": null,
"HotelType": null,
"Locations": null
}
为什么不创建一个没有 HotelsDetailsDto 属性为空的类 Hotel,然后让类 HotelsDetailsDto 从 Hotel 继承。而是返回列表。
这将起作用,除非HotelsDetailsDto是通过linq to SQL动态生成的。在这种情况下,请提供酒店和酒店之间的映射详细信息D以生成列表
把这段代码放在 WebApiConfig 中:
此代码在应用程序级别返回 json 时删除所有null
属性
config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
如果要从特定模型中删除null
属性,请使用以下代码:
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Comments{ get; set; }
希望这有帮助。