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

Json.NET에서 DateTime 역직렬화를 비활성화하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-29 06:49:10
원래의
784명이 탐색했습니다.

How Can I Disable DateTime Deserialization in Json.NET?

Json.NET에서 DateTime 역직렬화 비활성화

다음 시나리오를 고려하세요.

<br>사용 Newtonsoft.Json;<br>사용 Newtonsoft.Json.Linq;</p>
<p>클래스 프로그램<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">static void Main(string[] args)
{
    // Convert an object to a JObject, specifying DateParseHandling.None
    string s = "2012-08-08T01:54:45.3042880+00:00";
    JObject j1 = JObject.FromObject(new { time = s },
        new JsonSerializer { DateParseHandling = DateParseHandling.None });

    // Convert the JObject back to a string
    string j1String = j1.ToString();

    // Parse the string back into a JObject
    JObject j2 = JObject.Parse(j1String);

    // Check the type and value of the "time" property in j2
    object o2 = j2["time"];
    if (o2 is DateTime)
    {
        // Date deserialization was enabled: "time" is a DateTime
    }
    else
    {
        // Date deserialization was disabled: "time" is a raw string
    }
}
로그인 후 복사

}

기본적으로 Json.NET은 역직렬화합니다. JSON 문자열의 날짜를 DateTime 객체로 변환합니다. 그러나 경우에 따라 이 동작을 비활성화하고 대신 원시 날짜 문자열을 보존해야 할 수도 있습니다. 이를 달성하려면 다음 옵션을 사용할 수 있습니다.

  • DateParseHandling.None을 사용하는 JsonSerializer: 객체에서 JObject로 변환할 때 DateParseHandling.None을 사용하여 JsonSerializer를 지정할 수 있습니다. 날짜를 비활성화하려면 deserialization.
  • JsonReader: 또는 문자열에서 직접 구문 분석하는 경우 JsonReader를 생성하고 해당 DateParseHandling 속성을 None으로 수동으로 설정한 후 JObject.Load에 전달할 수 있습니다.

날짜 역직렬화를 비활성화하면 JSON에서 날짜 문자열의 원래 형식을 유지할 수 있습니다. 데이터.

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

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