反序列化大数据需要太长时间

时间:2017-06-29 18:15:58

标签: c#

[HttpGet]
public IEnumerable<Facility> AllFacilities()
{
    string jsondata  = Data.GetFacilities;
    JavaScriptSerializer javaScriptSerializer = new JavaScriptSerialize();
    javaScriptSerializer.MaxJsonLength = int32.MaxValue;
    return javaScriptSerializer.Deserialize<List<Facility>>(jsondata);
}

当存在大量数据时,反序列化会花费太长时间。有没有办法改善其性能。喜欢返回一部分数据并在加载其余部分时向用户显示。我的应用程序只在浏览器页面中显示xml格式的输出

我尝试了收益率回报。我不太了解它。我所期待的是“jsondata&#39;反序列化并逐个返回,以便用户可以在其他人加载时看到某些内容。但那并没有发生。

[HttpGet]
public IEnumerable<Facility> AllFacilities()
{
    string jsondata  = Data.GetFacilities;
    JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
    javaScriptSerializer.MaxJsonLength = int.MaxValue;
    foreach (var x in javaScriptSerializer.Deserialize<List<Facility>(jsondata))
    {
        yield return x;
    }
}

这两个片段以相同的方式返回数据。我究竟做错了什么?或者有更好的方法吗?请给我建议。

1 个答案:

答案 0 :(得分:0)

尝试使用分页(来自JSON.NET的JArray类) -

$ awk '1 
       tolower($0)~/type\s+database\s+user\s+address\s+method/{exit}' file