简体   繁体   中英

Newtonsoft.Json to System.Text.Json StreamReader equivalent

What's the equivalent to this in System.Text.Json?

System.IO.Stream stream;

using (var streamReader = new StreamReader(stream))
{
    using (var jsonTextReader = new JsonTextReader(streamReader))
    {
        var jsonSerializer = new JsonSerializer();
        return jsonSerializer.Deserialize<T>(jsonTextReader);
    }
}

This is as far as I got:

using (var streamReader = new StreamReader(stream))
{                
    using (var jsonTextReader = new Utf8JsonReader(streamReader))
    {                    
        return JsonSerializer.Deserialize<T>(jsonTextReader);
    }
}

Utf8JsonReader doesn't have an option for a stream reader...

由于 .NET 6 JsonSerializer.Deserialize具有接受Stream 的重载,因此您可以直接从Stream反序列化(假设流以 UTF-8 编码):

return JsonSerializer.Deserialize<T>(stream);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM