- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想设置一个全局设置,以便在从任何 HTTP 函数返回的任何响应中不返回 null
属性。
示例:
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
[FunctionName("HttpTriggeredFunction")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
ILogger log)
{
var user = new User
{
Id = 1,
FirstName = "Chris",
LastName = null
};
return new OkObjectResult(user);
}
返回:
{
"id": 1,
"firstName": "Chris",
"lastName": null
}
在上面的示例中,我希望响应中不返回 lastName
。
我知道您可以执行以下操作:
[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
但我不想装饰每个类。
在 Web API 的 Startup.cs
文件中,您可以执行如下操作:
services.AddMvcCore().AddNewtonsoftJson(jsonOptions =>
{
jsonOptions.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
最佳答案
实际上,它与Web api中的设置几乎相同。
在azure函数中,您可以使用依赖注入(inject)
,然后注册services.AddMvcCore().AddNewtonsoftJson(xxx)
。 azure函数中的DI可以引用this article .
首先,请确保您安装了以下 nuget 软件包(我在此测试中使用的是 azure function v3):
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.5" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.3" />
然后在您的 azure function 项目中,创建一个名为 Startup.cs
的类。这是该类的代码:
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
//add this line of code here.
[assembly: FunctionsStartup(typeof(FunctionApp6.Startup))]
namespace FunctionApp6
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddMvcCore().AddNewtonsoftJson(jsonOptions =>
{
jsonOptions.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
}
}
}
然后运行你的azure函数,空值将被删除。测试结果截图如下:
关于c# - 从 IActionResult 响应中删除空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62300816/
在 Controller 中在 .NET Core 中你可以返回 Ok()作为IActionResult .但我不明白它怎么还可以返回一个Task . 例子: public class Foo
Razor Pages 在 Asp.Net Core 2.0 中引入,作为创建以页面为中心的 Web 应用程序的一种方式,并且在许多方面比典型的 Controller 、 View 、模型方法更容易编
我们将在 dotnet core 2.1 中创建一个新的 API,这个 Web API 将是一个高流量/交易,比如每分钟 10,000 或更高。我通常像下面这样创建我的 API。 [HttpGet("
虽然我确实理解 Task、ActionResult 等概念。但我仍然不确定如果没有指定其他内容,在 Controller 中输入哪个最直观。 考虑到返回类型的明确性,我应该这样做: [HttpGet]
我正在开发 .Net Core Web API 应用程序。我的 Controller 上有以下方法: [HttpGet] public async Task GetArtists() { var
我刚刚下载了基于 ASP.NET 5 的 music store (microsoft sample projct) 源代码。我不明白为什么 Microsoft 的开发人员在 Controller 中
我想设置一个全局设置,以便在从任何 HTTP 函数返回的任何响应中不返回 null 属性。 示例: public class User { public int Id { get; set;
我正在使用 .NET Core 2 创建一个 API,为使用不同技术开发的许多应用程序提供数据。我目前正在从我的方法返回 IActionresult。我一直在研究返回数据的最佳选择是什么,并看到了一些
我正在将以下请求发布到 http://somesite.ngrok.io/nexmo?to=61295543680&from=68889004478&conversation_uuid=CON-btt
我正在使用 barcodelib 库 + .Net Core 中可用的 System.Drawing.Common 包生成条码图像。 我想在浏览器中将图像作为纯图像(或作为下载)返回给用户,但我似乎找
我正在尝试测试返回 IActionResult 的 API Controller 的结果。目前它正在返回一个包含状态代码、值等的对象。我正在尝试仅访问该值。 List newBatch2 = new
我正在尝试使用 IActionResult 接口(interface)来抛出特定的异常。但是此刻我被困在 Controller 上了。我编写了以下代码来获得单个调用: [Route("sing
我正在使用 C# 和 .NET Core 2.0 开发 ASP.NET Core 2 Web API。 我已经更改了一种方法,将其添加到 try-catch 中以允许我返回状态代码。 public I
我有 Controller 和一些端点 Task MyCustomEndpoint这是返回 return Ok(CustomDataType) .返回的数据是来自 JSON 的格式。 现在我想从其他
我有一个端点,它调用另一个返回 json 对象 (IActionResult) 的函数。如何访问 json 数据? public async Task GetData( [Ht
我已经创建了 Web API,但我的问题是从它读取结果给客户端。 创建用户的WebApi方法: [HttpPost] public IActionResult PostNewUser([FromBod
我已经开始研究 Typewriter,看看它是否符合我生成模型和 API 层的要求。 到目前为止,它正在生成模型,我让它生成某种 API 层,但是在使用 $ReturnType 时我遇到了问题,如示例
什么是 IActionResult?我尝试查看 MSDN 和其他站点,但需要一般的、常见的、易于理解的答案。 MSDN IActionResult 示例: public IActionResult A
我有一个 API Controller 端点,例如: public IHttpActionResult AddItem([FromUri] string name) { try {
我有一个只有一个 Action 的 Controller 。在这个 Action 方法中,我有一个 async我调用的方法就是这样。这是我正在使用的代码: [HttpGet] public Task
我是一名优秀的程序员,十分优秀!