Utt*_*eja 12 json .net-core asp.net-core asp.net-core-webapi asp.net-core-5.0
我正在使用 ASP.NET Core 5。如下所示,我正在使用System.Text.Json
:
public IActionResult Index()
{
var result = GetAllMenuItems();
return Ok(result);
}
Run Code Online (Sandbox Code Playgroud)
我的 JSON 的预期形状是:
[
{
"NameEn": "omlet en",
"MenuId": 258,
"Categories": [
{
"MenuCategoryEn": "Lunch En",
"Id": 175
},
{
"MenuCategoryEn": "Dinner En",
"Id": 176
}
],
"Id": 213
}
]
Run Code Online (Sandbox Code Playgroud)
但它是$id
用随机数生成的,并将实际数据包装在其中$value
:
{
$id: "1",
$values: [
{
$id: "2",
nameEn: "omlet en",
menuId: 258,
categories: {
$id: "3",
$values: [
{
$id: "4",
menuCategoryEn: "Lunch En",
id: 175
},
{
$id: "6",
menuCategoryEn: "Dinner En",
id: 176
}
]
},
id: 213
}
]
}
Run Code Online (Sandbox Code Playgroud)
类如下,包含多对多导航属性
public class MenuItem : BaseEntity
{
public string NameEn { get; set; }
public long MenuId { get; set; }
public List<MenuCategory> Categories { get; set; } = new();
public Menu Menu { get; set; }
}
public partial class MenuCategory : BaseEntity
{
public string MenuCategoryEn { get; set; }
public List<MenuItem> MenuItems { get; set; } = new();
}
Run Code Online (Sandbox Code Playgroud)
有没有适当的解决方案来解决这个问题?
mj1*_*313 20
您是否像下面这样在 stratup 中配置 JsonOptions ?
options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.Preserve;
Run Code Online (Sandbox Code Playgroud)
不要假装ReferenceHandler
你Preserve
这样做了。
options.JsonSerializerOptions.ReferenceHandler = null;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3004 次 |
最近记录: |