> 백엔드 개발 > C++ > Json.NET의 JObject.Parse를 사용할 때 DateTime 역직렬화를 방지하는 방법은 무엇입니까?

Json.NET의 JObject.Parse를 사용할 때 DateTime 역직렬화를 방지하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-03 08:11:39
원래의
968명이 탐색했습니다.
How to Prevent DateTime Deserialization When Using Json.NET's JObject.Parse?
문제를 설명하려면 다음 JSON 문자열을 고려하세요.

Json을 사용하는 경우 .NET의 JObject.Parse 메서드를 사용하여 이 문자열을 구문 분석하면 시간 속성이 자동으로 DateTime 개체로 역직렬화됩니다. 이 동작은 추가 처리를 위해 원시 문자열 표현이 필요한 경우 문제가 될 수 있습니다.

날짜 역직렬화 방지

JObject.Parse에서 날짜 자동 변환을 비활성화하려면 JsonReader를 활용할 수 있습니다. .DateParseHandling 속성. 이 속성을 사용하면 구문 분석 프로세스 중에 날짜를 처리하는 방법을 지정할 수 있습니다. DateParseHandling.None으로 설정하면 Json.NET에서 날짜를 문자열로 처리하고 DateTime 객체로 변환하지 않도록 지시할 수 있습니다.
{
  "time": "2012-08-08T01:54:45.3042880+00:00"
}
로그인 후 복사

다음 코드는 이를 달성하는 방법을 보여줍니다.

이 코드에서는 먼저 제공된 JSON 문자열을 사용하여 JsonReader 개체를 만듭니다. 그런 다음 JSON 데이터를 JObject에 로드하기 전에 DateParseHandling 속성을 DateParseHandling.None으로 설정합니다. 결과적으로 시간 속성은 원시 문자열로 구문 분석되어 그에 따라 액세스할 수 있습니다.

결론

JsonReader.DateParseHandling 속성을 활용하면 날짜의 역직렬화를 효과적으로 비활성화할 수 있습니다. Json.NET의 JObject.Parse 메서드. 이를 통해 날짜의 원시 문자열 표현을 검색할 수 있어 다양한 시나리오에서 데이터 처리 및 처리를 더 효과적으로 제어할 수 있습니다.
using(JsonReader reader = new JsonTextReader(new StringReader(jsonString))) {
    reader.DateParseHandling = DateParseHandling.None;
    JObject o = JObject.Load(reader);
}
로그인 후 복사

위 내용은 Json.NET의 JObject.Parse를 사용할 때 DateTime 역직렬화를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿