Newtonsoft.Json에서 ToObject()
메서드는 일반적으로 JSON 토큰을 강력한 형식의 개체로 변환하는 데 사용됩니다. 그러나 System.Text.Json에서는 쉽게 사용할 수 있는 동등한 메서드가 없습니다.
.NET 6 이상에서는 JsonSerializer
또는 JsonElement
에서 직접 개체를 역직렬화할 수 있도록 JsonDocument
에 확장 메서드가 추가되었습니다. 이는 다음 구문을 허용합니다:
<code class="language-csharp">using var jDoc = JsonDocument.Parse(str); var myClass = jDoc.RootElement.GetProperty("SomeProperty").Deserialize<SomeClass>();</code>
.NET 5 이하의 경우 중간 바이트 버퍼에 쓰는 것과 관련된 해결 방법을 사용하여 성능을 향상할 수 있습니다.
<code class="language-csharp">public static T ToObject<T>(this JsonElement element, JsonSerializerOptions options = null) { var bufferWriter = new ArrayBufferWriter<byte>(); using (var writer = new Utf8JsonWriter(bufferWriter)) element.WriteTo(writer); return JsonSerializer.Deserialize<T>(bufferWriter.WrittenSpan, options); } public static T ToObject<T>(this JsonDocument document, JsonSerializerOptions options = null) { if (document == null) throw new ArgumentNullException(nameof(document)); return document.RootElement.ToObject<T>(options); }</code>
지침:
JsonDocument
는 무료이므로 using
문을 사용해야 한다는 점을 기억하세요. 위 내용은 System.Text.Json에서 JSON 요소를 개체로 역직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!