>백엔드 개발 >C++ >Json.NET에서 역직렬화 중에 날짜 변환을 비활성화하려면 어떻게 해야 합니까?

Json.NET에서 역직렬화 중에 날짜 변환을 비활성화하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-05 07:10:40246검색

How Can I Disable Date Conversion During Deserialization in Json.NET?

Json.NET의 역직렬화 처리: 날짜 변환 비활성화

특정 시나리오에서는 Json.NET이 자동으로 변환되지 않도록 방지하는 것이 바람직할 수 있습니다. 역직렬화 중 날짜. 이를 달성하기 위해 JsonSerializer의 DateParseHandling 속성을 활용할 수 있습니다.

다음 코드를 고려하세요.

string s = "2012-08-08T01:54:45.3042880+00:00";

JObject j1 = JObject.FromObject(
    new
    {
        time = s
    },
    new JsonSerializer { DateParseHandling = DateParseHandling.None }
);

여기에서는 DateParseHandling 속성을 다음으로 설정하여 날짜를 구문 분석하지 않도록 지정합니다. 없음. 결과적으로 o 변수는 원래 날짜 값을 포함하는 문자열로 유지됩니다.

안타깝게도 JObject.Parse() 메서드는 날짜 구문 분석을 제어하는 ​​직접적인 방법을 제공하지 않습니다. 그러나 기본 JsonReader를 활용하여 목표를 달성할 수 있습니다.

using (JsonReader reader = new JsonTextReader(new StringReader(j1.ToString())))
{
    reader.DateParseHandling = DateParseHandling.None;
    JObject o = JObject.Load(reader);
}

이 코드에서는 원하는 날짜 구문 분석 옵션을 사용하여 JsonReader를 생성한 다음 이를 사용하여 JSON 문자열을 JObject로 역직렬화합니다. 이 접근 방식을 사용하면 날짜에 대한 사용자 지정 구문 분석 동작을 지정하여 해당 날짜가 DateTime 객체가 아닌 문자열로 처리되도록 할 수 있습니다.

역직렬화 중에 날짜를 변환하는 기본 동작이 많은 경우에 편리할 수 있지만 다음 사항을 아는 것이 중요합니다. Json.NET은 애플리케이션의 특정 요구 사항을 충족하기 위해 이 동작을 사용자 정의할 수 있는 옵션을 제공합니다.

위 내용은 Json.NET에서 역직렬화 중에 날짜 변환을 비활성화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.