JsonConvert에서 null/empt 값을 처리하는 방법.디시리얼라이즈 오브젝트
다음 코드가 있습니다.
return (DataTable)JsonConvert.DeserializeObject(_data, (typeof(DataTable)));
그리고 나서, 나는 시도했다:
var jsonSettings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
};
return (DataTable)JsonConvert.DeserializeObject<DataTable>(_data, jsonSettings);
리턴 라인이 다음 오류를 발생시키고 있습니다.
{"System"을 입력하기 위해 값 "\"을(를) 변환하는 중 오류가 발생했습니다.두 배로."}
커스텀 작성을 제안하는 온라인 솔루션이 많다.Class
nullable type을 사용하지만 이 방법은 사용할 수 없습니다.json이 특정 형식일 것이라고 기대할 수 없습니다.열 개수, 열 유형 또는 열 이름을 제어할 수 없습니다.
설정을 다음에 제공할 수 있습니다.JsonConvert.DeserializeObject
이 경우 null 값 처리 방법 등을 설명합니다.
var settings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
MissingMemberHandling = MissingMemberHandling.Ignore
};
var jsonModel = JsonConvert.DeserializeObject<Customer>(jsonString, settings);
Thomas Hagström을 위한 대체 솔루션은 멤버 변수에 속성 속성을 사용하는 것입니다.
예를 들어 API를 호출하면 에러 메시지가 반환되거나 반환되지 않을 수 있으므로 ErrorMessage의 NullValueHandling 속성을 설정할 수 있습니다.
public class Response
{
public string Status;
public string ErrorCode;
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string ErrorMessage;
}
var response = JsonConvert.DeserializeObject<Response>(data);
이 방법의 이점은 데이터 정의(무엇)와 역직렬화(사용)를 분리하는 것입니다.이것에 의해, 역직렬화(사용)는 데이터 속성에 신경 쓸 필요가 없어지기 때문에, 2명이 함께 작업할 수 있어 역직렬화 스테이트먼트가 명확하고 심플하게 됩니다.
'Error' 이벤트를 구독하고 필요에 따라 직렬화 오류를 무시할 수 있습니다.
static void Main(string[] args)
{
var a = JsonConvert.DeserializeObject<DataTable>("-- JSON STRING --", new JsonSerializerSettings
{
Error = HandleDeserializationError
});
}
public static void HandleDeserializationError(object sender, ErrorEventArgs errorArgs)
{
var currentError = errorArgs.ErrorContext.Error.Message;
errorArgs.ErrorContext.Handled = true;
}
ASP.NET CORE: 인정된 답변은 완벽하게 기능합니다.단, 그 해답을 글로벌하게 적용하기 위해startup.cs
줄서다ConfigureServices
method는 다음과 같이 기술합니다.
services.AddControllers().AddNewtonsoftJson(options =>
{
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
답변은 에서 테스트되고 있습니다.Net Core 3.1 프로젝트
언급URL : https://stackoverflow.com/questions/31813055/how-to-handle-null-empty-values-in-jsonconvert-deserializeobject
'programing' 카테고리의 다른 글
Spring Boot/Spring Security에서 사용자가 자신의 데이터에만 접근할 수 있도록 하는 방법 (0) | 2023.03.08 |
---|---|
사용자 지정 분류법이 Post Gutenberg 편집기에 표시되지 않음 (0) | 2023.03.08 |
WordPress Login_direct가 작동하지 않음 (0) | 2023.03.08 |
데이터베이스 연결 Amazon EC2 설정 중 오류 발생 - wordpress 블로그 이동 후 (0) | 2023.03.08 |
Angular에서 버튼을 클릭하여 새 탭을 엽니다.JS (0) | 2023.03.08 |