从Web服务反序列化大型JSON对象(内存不足)

我有一个从Web服务反序列化大型对象的程序。经过网络服务调用和200之后,代码如下所示。

JsonConvert.DeserializeObject<List<T>>(resp.Content.ReadAsStringAsync().Result).ToList()

有时在运行此过程时,我会得到一个聚合异常,该异常将内部异常显示为内存不足。我无法确定是导致这个问题的原因在于读取JSON数据字符串(可能很大)的过程或反序列化。我想做的是分解字符串,然后从响应中分别拉回每个JSON对象,然后反序列化它。我只是在寻找一种方法来从响应中一次仅带出一个JSON对象的麻烦。任何建议,不胜感激!

回答:

HttpClient client = new HttpClient();

using (Stream s = client.GetStreamAsync("http://www.test.com/large.json").Result)

using (StreamReader sr = new StreamReader(s))

using (JsonReader reader = new JsonTextReader(sr))

{

JsonSerializer serializer = new JsonSerializer();

// read the json from a stream

// json size doesn't matter because only a small piece is read at a time from the HTTP request

Person p = serializer.Deserialize<Person>(reader);

}

以上是 从Web服务反序列化大型JSON对象(内存不足) 的全部内容, 来源链接: utcz.com/qa/404360.html

回到顶部