【发布时间】:2014-08-01 22:37:15
【问题描述】:
我正在尝试通过我的 .NET 桌面应用程序读取 Web 服务 api。我尝试了以下方法,但没有填充任何内容。通过 Fiddler,如果我单击 [Raw] 选项卡,响应如下所示:
HTTP/1.1 200 OK
Date: Fri, 01 Aug 2014 21:49:48 GMT
Server: Apache
X-Powered-By: PHP/5.3.3
Connection: close
Content-Length: 125478
Access-Control-Allow-Origin: *
Content-Type: application/json
Content-Language: en
{"request":{"command":"project","project_id":"XYZ123"},"project":[{"project_id":"XYZ123","name":"Project Financials","description":"Sales","state":"CA","dept":"Finance","modified":"2014-08-01","data":[["20140801", 112423],["20140731", 689944],["20140730", 9855], ["20140729", 13118], ["20140728", 9448],
... more data ...
["20140318", 1546], ["20140317", 5467], ["20140316", 19578], ["20140315", 90158]]}]}
我想捕获数据点,即来自上述 JSON 段的“数据”。为此,我有一个简单的类如下:
public class DailySales
{
public datetime Date { get; set; }
public int UnitsSold { get; set; }
}
这是我的网络服务代码:
private void GetSales()
{
var webClient = new WebClient();
webClient.OpenReadCompleted += webClient_OpenReadCompleted;
webClient.OpenReadAsync(new Uri("http://3rdPartySite.com));
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
var json = new DataContractJsonSerializer(typeof(List<DailySales>));
var data = (List<DailySales>)json.ReadObject(e.Result); // returns null
}
任何关于我所缺少的提示将不胜感激。
【问题讨论】:
-
在
System.Net.Http程序集中使用System.Net.Http.HttpClient。WebClient是旧的。 -
您只想要
data积分?您正在尝试使用不匹配的类解析 json。
标签: c# .net json asp.net-web-api