Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中加载大型JSON文件#_C#_Json_Windows Phone 7_Windows Phone 8_Webrequest - Fatal编程技术网

C# 在C中加载大型JSON文件#

C# 在C中加载大型JSON文件#,c#,json,windows-phone-7,windows-phone-8,webrequest,C#,Json,Windows Phone 7,Windows Phone 8,Webrequest,1) 我需要在Windows Phone应用程序上下载一个大的JSON文件,我希望在下载时处理JSON,因为否则应用程序只会不断下载JSON,这可能需要10秒或更长时间,有什么方法可以做到这一点吗?我已经搜索了2天了,但似乎没有任何效果 2) 有什么简单的方法可以检查这个JSON文件中的新项目吗?它是在线托管的,因此我必须检查是否有新项目(节点)添加到文件中 只要问问服务器是否有新的东西,让他只发送给你真正的新东西。它将大大减少,因此在网上传输的数据更少,处理和可视化(如果需要)的时间也更少 或

1) 我需要在Windows Phone应用程序上下载一个大的JSON文件,我希望在下载时处理JSON,因为否则应用程序只会不断下载JSON,这可能需要10秒或更长时间,有什么方法可以做到这一点吗?我已经搜索了2天了,但似乎没有任何效果

2) 有什么简单的方法可以检查这个JSON文件中的新项目吗?它是在线托管的,因此我必须检查是否有新项目(节点)添加到文件中

  • 只要问问服务器是否有新的东西,让他只发送给你真正的新东西。它将大大减少,因此在网上传输的数据更少,处理和可视化(如果需要)的时间也更少

  • 或者创建JSON请求,该请求获取数据包中的数据,并在每个数据包到达后对其进行处理。下载需要更长的时间,因为在处理过程中,您将阻止请求,但它会向用户提供反馈。您可以利用这一点,通过在本地JS堆栈中推送数据包并继续请求另一个数据包,同时在其上处理已经可用的数据包。但在我看来,对于这个足够简单的东西来说,情况变得相当复杂


  • 一,。如果您想逐步解析JSON对象,请查看JSON.NET的
    JsonReader

    请注意,在Windows Phone上,您无法从UI线程上的网络流中提取,但如果您将工作推送到后台线程,则可以提取(请查看
    BackgroundWorker

    二,。如果您的web服务器支持它,您可以在没有匹配的情况下传递
    /
    (如果自
    头修改)并接受304响应,以指示没有任何更改

    但是,这只匹配整个HTTP请求。如果需要更详细的信息,您可以将请求分为:

    a) 请求ID和上次修改日期的列表


    b) 请求ID列表的详细信息(由应用程序根据修改后的日期确定)

    @newStackExchangeInstance:你知道有任何流式JSON解析器吗?询问服务器恐怕没有选择,它是一个类似rss提要的JSON文件,每次添加新项目时都会更新(自2008年以来),我刚好能够获得该JSON文件,除此之外……我恐怕现在你没有太多的选择,然后在客户端以某种巧妙的方式管理它。这就是我所担心的,我希望这里的任何人在我之前遇到过这个问题,并能为我提供一些建议……)