문제를 설명하려면 다음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!