我想知道在C#中解析
JSON的最有效方法是什么?而且效率我指的是响应时间较短的那个.我试图使用几种方法解析大量数据,这两种方法的响应时间都很长.谁能告诉我以下方法之间的区别?是否有一种替代方案可以让我以较低的响应时间进行解析?
选项1:@H_301_3@
HttpWebRequest request = WebRequest.Create(jsonURL) as HttpWebRequest; using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { if (response.StatusCode != HttpStatusCode.OK) throw new Exception(String.Format( "Server error (HTTP {0}: {1}).",response.StatusCode,response.StatusDescription)); DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(obj)); object objResponse = jsonSerializer.ReadObject(response.GetResponseStream()); }
选项2:@H_301_3@
var json = new WebClient().DownloadString(jsonURL); using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json))) { DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(obj)); object objResponse = jsonSerializer.ReadObject(ms); }
解决方法
您可以在以下链接中找到比较.
测试的库:@H_301_3@
http://sagistech.blogspot.com/2010/03/parsing-twitter-json-comparing-c.html@H_301_3@
> Json.NET – 一个流行的C#JSON库.
> Gapi.NET – Gapi.NET不是JSON解析库,但它包含JSON解析例程.
> Procurios – 又一个C#JSON库.另请参阅此博客文章,了解如何使用它来解析Twiter数据.
> JavaScriptSerializer – .NET 3.5内置JSON解析器.
> DataContractJsonSerializer – .NET 3.5内置JSON解析器.
> AjaxPro – 一个C#AJAX库.@H_301_3@
更新:@H_301_3@
根据Matt Johnson的评论添加了此信息@H_301_3@
http://theburningmonk.com/2011/11/performance-test-json-serializers-part-ii/@H_301_3@