使用泛型将流转换为对象

时间:2018-11-17 14:12:56

标签: c# json.net

我有一个来自Web服务的JSON响应,我想将其转换为List<Foo>。我知道我可以通过几种方法来做到这一点,但是支持JSON.NET文档中可以看到的泛型的唯一方法是来自string

响应可能很大,所以我真的不想将其全部读入内存,然后将其转换为我的对象。

我尝试过:

using (var response = request.GetResponse())
{
    using (var responseStream = response.GetResponseStream())
    {
        if (responseStream == null) throw new Exception("ResponseStream is null!!!");

        using (var reader = new StreamReader(responseStream))
        {
            using (var jsonReader = new JsonTextReader(reader))
            {
                // var foos = JsonConvert.DeserializeObject<List<Foo>>()  -- Requires a string
                // var foos = new JsonConverter<List<Foo>>().ReadJson()... -- Non generic
            }

        }
    }
}

是否可以直接从流中将其读取到List<Foo>中而不必这样做?

0 个答案:

没有答案