我们正在将 API 从 .net 4.8 库移至 .Net 6。我遇到了一个奇怪的问题,即没有任何嵌套对象(成本)被序列化。
我尝试在启动中添加 using,但我的 api 无法使用此选项。我什至看不到启用此选项的控制器。
Newtonsoft.Json.Serialization;
...............
services.AddControllers().AddNewtonsoftJson();
Run Code Online (Sandbox Code Playgroud)
或者
`services.AddControllers().AddNewtonsoftJson(options =>`
`{`
`options.SerializerSettings.ContractResolver = new DefaultContractResolver();`
`options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;`
`});`
services.AddControllers().AddJsonOptions(o =>
{
o.JsonSerializerOptions.MaxDepth = 4;
o.JsonSerializerOptions.PropertyNamingPolicy = null;
o.JsonSerializerOptions.DictionaryKeyPolicy = null;
});
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
我期望以下格式
`{
"Status": 200,
"Message": "Processed Successfully",
"Description": null,
"Errors": null,
"ResponseObject": {
"Costs": [
{
"Component": "xxx",
"Key1": "123",
"Key2": null,
"Key3": null,
"ProductCode": "x",
"From": "2021-08-05T00:00:00",
"To": "2021-08-05T23:59:59",
"Value": "1584",
"CurrencyCode": null,
"UnitOfMeasure": null
},
{
"Component": …Run Code Online (Sandbox Code Playgroud)