在C#中加载大型JSON文件

时间:2013-06-24 20:22:41

标签: c# json windows-phone-7 windows-phone-8 webrequest

1)我需要在Windows Phone应用程序上下载一个大型JSON文件,我想在下载时处理JSON,因为否则应用程序只会继续下载JSON,这可能需要10秒或更长时间,有什么办法吗?我现在已经搜索了2天,似乎没有任何工作......

2)有没有简单的方法来检查此JSON文件中的新项目?它在线托管,所以我必须检查是否有新项目(节点)添加到文件中。

2 个答案:

答案 0 :(得分:1)

  1. 只要询问服务器是否有新内容,并让他发送实际的新内容。它将更少,因此传输的数据更少,并且处理和可视化(如果需要)的时间更少。

  2. 或创建JSON请求,以数据包形式获取数据,并在每个数据包到达后处理它。下载需要更长时间,因为在处理期间您将阻止请求,但它会向用户提供反馈。您可以通过在本地JS堆栈中推送数据包并继续请求另一个数据包来利用此功能,同时处理已经可用的数据包。但是对于这个足够简单(在我看来)的东西来说,它变得相当复杂,即imo。

答案 1 :(得分:0)

1。如果要逐步解析JSON对象,请查看JSON.NET的JsonReader

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

2。如果您的Web服务器支持它,您可以传递BackgroundWorker / If-None-Match标头并接受304响应以指示没有任何更改。

但是,这仅匹配整个HTTP请求。如果您需要更精细的细节,可以将请求拆分为:

a)申请ID列表和最后修改日期

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