我需要忽略我自定义的json转换器中的所有null字段。
我的转换器继承自JsonConverter,我已经重写了WriteJson方法。
我需要为转换器配置此设置NullValueHandling.Ignore
,但是我看不到如何进行设置。
public class CommonJsonConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return true;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
//i dont need it now
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var maclasse = ( Maclasse ) value ;
writer.WritePropertyNameAndValuer("StringValue",maclasse.id);
writer.WritePropertyNameAndValuer("StringValue",maclasse.nom);
}
}
谢谢大家。
答案 0 :(得分:0)
编辑: 您可以在基类上使用NullValueHandling设置,并从基类继承其他类。
[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]
public class BaseClass{}
答案 1 :(得分:0)
在dotnet核心mvc应用程序中,您可以在Option Explicit
Public Sub DefineNamedRanges()
Dim WSheet As Worksheet
Dim ShtName As Variant
For Each WSheet In Worksheets
ShtName = WSheet.Name
If ShtName <> "Summary Report" Then
WSheet.Names.Add Name:=ShtName & "Close", _
RefersTo:="=OFFSET(ShtName!$A$2,0,0,COUNTA(ShtName!$A$2:$A$1048576),COUNTA(ShtName!$2:$2))"
End If
Next WSheet
End Sub
之后调用AddJsonOptions()
,并为它提供忽略json中AddMvc()
值的选项。但是,这会影响所有通过请求管道的Json结果。
以下代码可以添加到您的null
startup.cs
对于普通的控制台应用程序,类似的东西可能会出现在您的主要入口点(应用程序设置)中:
public void ConfigureServices(IServiceCollection services)
{
// needs a reference in your `csproj` file to `Microsoft.AspNetCore.Mvc.Formatters.Json`
services.AddJsonOptions(Startup.SetJsonOptions);
}
private static void SetJsonOptions(MvcJsonOptions options)
{
options.SerializerSettings.Converters.Add(new CustomConverter());
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
}