100

モバイル アプリケーションで使用される ASP.Net WEB API プロジェクトを作成しました。として返すのではなく、null プロパティを省略するには、応答 json が必要property: nullです。

これどうやってするの?

4

5 に答える 5

139

WebApiConfig

config.Formatters.JsonFormatter.SerializerSettings = 
                 new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};

または、より詳細な制御が必要な場合は、フォーマッター全体を置き換えることができます。

var jsonformatter = new JsonMediaTypeFormatter
{
    SerializerSettings =
    {
        NullValueHandling = NullValueHandling.Ignore
    }
};

config.Formatters.RemoveAt(0);
config.Formatters.Insert(0, jsonformatter);
于 2013-01-23T18:25:49.750 に答える
33

ASP.NET5 1.0.0-beta7 を使用して、startup.cs ファイルにこのコードを追加しました。

services.AddMvc().AddJsonOptions(options =>
{
    options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
于 2015-10-16T09:44:22.980 に答える
19

ASP.NET Core 3.0 の場合、コード内のConfigureServices()メソッドには次が含まれている必要があります。Startup.cs

services.AddControllers()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.IgnoreNullValues = true;
    });
于 2019-11-15T15:43:50.923 に答える
5

vnext を使用している場合は、vnext Web API プロジェクトで、このコードを startup.cs ファイルに追加します。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().Configure<MvcOptions>(options =>
        {
            int position = options.OutputFormatters.FindIndex(f =>  f.Instance is JsonOutputFormatter);

            var settings = new JsonSerializerSettings()
            {
                NullValueHandling = NullValueHandling.Ignore
            };

            var formatter = new JsonOutputFormatter();
            formatter.SerializerSettings = settings;

            options.OutputFormatters.Insert(position, formatter);
        });

    }
于 2015-04-22T13:01:31.133 に答える