问题描述
我有一个Web API 5.0,它返回了一个相当基本的对象的dto。这是课程
[JsonObject(IsReference = false)]
public class BillToReturnDto
{
public string id { get; set; }
public string organizationId { get; set; }
}
但是当我返回列表时,它会像这样
{ “ $ id”:“ 1”, “ $ values”:[ { “ $ id”:“ 2”, “ id”:“ rvKLS178QWyWJu0tgESTnA”, “ organizationId”:“ ujoF624LSVyyQFapjauyAw”, }, { “ $ id”:“ 2”, “ id”:“ xvWfrRQWyyG0tgEd53dW”, “ organizationId”:“ ujoF624LSVyyQFapjauyAw”, } ] }
如何删除这些ID?我尝试过IsReference为false,因为您看不到
更新:
这是控制器方法:
public async Task<ActionResult> Get()
{
var userId = User.FindFirst("Id").Value;
var accesstoken = await _userService.GetAccesstoken(Convert.ToInt32(userId));
var bills = await _shoppingService.GetBills(accesstoken);
var billsToReturn = _mapper.Map<List<BillToReturnDto>>(bills.bills);
return Ok(billsToReturn);
}
解决方法
startup.cs 中的这一行可能会在我的情况下造成问题:
services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.Preserve;
});
删除 .AddJsonOptions([....]) 并查看它是否适合您。