새 Net Core 3.0 Json을 사용하여 null인 경우 속성 무시
JSON을 사용하는 경우.ASP 내의 네트워크Net Core 2.2 JSON으로 시리얼화할 때 값이 null일 때 속성을 무시할 수 있었습니다.
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public DateTime? Created { get; set; }
단, 새로운 ASP를 사용할 때는Net Core 3.0은 JSON(시스템)에 내장되어 있습니다.Text.Json) 값이 null인 경우 속성을 무시할 동등한 속성을 찾을 수 없습니다.
난 Json Ignore만 찾을 수 있었다.
내가 뭘 빼놓았나요?
보고 있어요.Net Core 3.1. 여기서 null 값은 무시됩니다.
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true;
});
에 있는 동안.NET 5 이후, 다음과 같이 설정합니다.
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
});
위의 내용은 속성/속성별이 아닙니다.단, 도움이 될 수 있는 속성이 있습니다.
문제를 해결하기 위해 JsonConverterAttribute를 사용할 수도 있습니다.자신의 컨버터를 쓰는 방법에 대한 정보는 이쪽에서 확인할 수 있습니다.
이것은 에서 수정되었습니다.넷 5
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
아래 업데이트를 참조하십시오.
https://github.com/dotnet/runtime/issues/41313
https://github.com/dotnet/runtime/issues/30687
JSON 직렬화 중에 null 값을 무시하도록 속성 수준을 제어하려면 Net Core 3.1의 경우 사용자 지정 변환기를 작성해야 합니다.뉴턴소프트에 기술된 예들이 있다.Json 이행 매뉴얼
Newtonsoft를 사용한 선언적 기능에는 큰 번거로움이 있습니다.Json 뉴턴소프트를 사용하도록 지정할 수 있습니다.기동시에 같은 값을 지정해, Json을 기동합니다.서비스()를 설정합니다.
services.AddControllers()
.AddNewtonsoftJson();
메뉴얼에 기재되어 있듯이, Microsoft 를 추가할 필요가 있습니다.AspNetCore.MVC.NewtonsoftJson 패키지
이것은 속성별도 아니고 속성별도 아니지만 스타트업에서 이 기능을 추가하면 도움이 됩니다.
services.AddMvc()
.AddJsonOptions(options =>{ options.JsonSerializerOptions.IgnoreNullValues = true; });
만약 당신이 여전히 뉴턴소프트를 사용하고 있다면..net core 3.1의 Json은 다음과 같은 구성을 원합니다.
services
.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true;
})
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
});
시스템을 사용하는 경우.Text.Json(.net 5.0) 및 모든 null 사용을 무시하는 경우 Writing Null 조건:
services.AddControllers().AddJsonOptions(a =>
{
a.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.Preserve;
a.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
});
TL&DR: DotNet 6에서는 Null Value Handling이 폐지되었습니다.대신 DefaultIgnoreCondition = JsonIgnoreCondition을 사용하십시오.Writing Null의 경우
services.AddControllersWithViews().AddJsonOptions(options =>
{
options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
});
공식 마이그레이션 가이드를 참조하십시오.ASP에서 마이그레이션NET Core 2.2~3.0
서비스 코드는 다음과 같습니다.
services.AddMvc(c =>
{
})
.AddNewtonsoftJson(
options =>
{
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
options.SerializerSettings.StringEscapeHandling = StringEscapeHandling.EscapeHtml;
options.SerializerSettings.Error = (object sender, ErrorEventArgs args) =>
{
// handle error
};
}
);
언급URL : https://stackoverflow.com/questions/58106558/ignore-property-when-null-using-the-new-net-core-3-0-json
'programing' 카테고리의 다른 글
woocommerce_order_status_hooks 후크: 오래된 상태와 새로운 상태를 유지하시겠습니까? (0) | 2023.02.24 |
---|---|
텍스트 붙여넣기 시 이상한 메시지 (0) | 2023.02.24 |
각도 재료 ng클릭 이상한 테두리 강조 표시 (0) | 2023.02.24 |
php json 인코딩에서 값을 가져옵니다. (0) | 2023.02.24 |
AngularJS는 $scope 배열의 첫 번째 또는 0 인덱스에 항목을 푸시합니다. (0) | 2023.02.24 |