如何使用.NET解析此第三方JSON服务?

用户名

我正在尝试通过.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  
}

我所缺少的任何提示将不胜感激。

尤瓦尔·伊茨恰科夫(Yuval Itzchakov)

好吧,您的json不会反序列化,因为您的类模型根本不匹配它。

首先,创建一个合适的模型(这是使用json2csharp生成的):

public class Request
{
    public string command { get; set; }
    public string project_id { get; set; }
}

public class Project
{
    public string project_id { get; set; }
    public string name { get; set; }
    public string description { get; set; }
    public string state { get; set; }
    public string dept { get; set; }
    public string modified { get; set; }
    public List<List<object>> data { get; set; }
}

public class RootObject
{
    public Request request { get; set; }
    public List<Project> project { get; set; }
}

data由于List<List<object>>无法识别普通模式,因此便笺以的形式生成您可以将其更改为包含intDateTime对象的类,但必须将JSON中的intDateTime手动转换为对象。

在webrequest端,您可以将.NET 4.5中HttpClient的新async-await功能与以下功能一起使用Json.NET

public async Task RequestAndDeserializeJson()
{
    var httpClient = new HttpClient();
    var json = await httpClient.GetAsStringAsync("http://3rdPartySite.com");
    RootObject obj = JsonConvert.Deserialize<RootObject>(json);
}

如果只想提取data点,则可以JObject.Parse在Json.NET api中使用:

var jobject = JObject.Parse(json);

// Extract data points only
var dataPoints = jobject["project"]["data"];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用.NET解析此第三方JSON服务?

来自分类Dev

使用领事监控第三方服务

来自分类Dev

如何在JAVA中解析没有第三方的JSON字符串

来自分类Dev

如何从第三方API保存JSON对象

来自分类Dev

如何告诉Json.NET忽略第三方对象中的属性?

来自分类Dev

使用第三方控件

来自分类Dev

使用第三方控件

来自分类Dev

第三方库的使用

来自分类Dev

第三方api解析,xml解析,原始数据解析,ror解析,ror nokoigiri,使用nokogiri进行第三方api解析

来自分类Dev

如何使用cxf componnet使用Apache骆驼调用第三方Web服务

来自分类Dev

如何使用php从第三方网站解析格式错误的RSS feed?

来自分类Dev

如何在Spring MVC中使用第三方WSDL服务

来自分类Dev

如何在C#中使用第三方https wsdl Web服务

来自分类Dev

使用 .NET 调用第三方 API 服务器端并传递变量以在 Javascript 中使用

来自分类Dev

如何使用第三方@ConfigurationProperties @Bean?

来自分类Dev

ImageJ:如何使用第三方插件API?

来自分类Dev

如何使用第三方组件

来自分类Dev

如何使用ASP.NET Web API向第三方公开URL

来自分类Dev

如何查找第三方库中正在使用的第三方组件

来自分类Dev

没有第三方库,如何完整解析HTML?

来自分类Dev

使用Maven解析JUnit结果XML格式(由第三方工具创建)

来自分类Dev

在解析中使用第三方库进行云代码处理时出现ReferenceError

来自分类Dev

如何以编程方式从客户端捕获第三方Web服务xml

来自分类Dev

AngularJS,传单。如何从第三方服务动态获取纬度和经度坐标?

来自分类Dev

如何在“第三方服务器”上对GKLocalPlayer进行身份验证?

来自分类Dev

如何定期将Redis数据发送给第三方服务?

来自分类Dev

如何通过第三方许可服务从卖方获得退款许可

来自分类Dev

如何向第三方服务器发出承诺电话?

来自分类Dev

如何为第三方客户端配置WCF服务终结点

Related 相关文章

  1. 1

    如何使用.NET解析此第三方JSON服务?

  2. 2

    使用领事监控第三方服务

  3. 3

    如何在JAVA中解析没有第三方的JSON字符串

  4. 4

    如何从第三方API保存JSON对象

  5. 5

    如何告诉Json.NET忽略第三方对象中的属性?

  6. 6

    使用第三方控件

  7. 7

    使用第三方控件

  8. 8

    第三方库的使用

  9. 9

    第三方api解析,xml解析,原始数据解析,ror解析,ror nokoigiri,使用nokogiri进行第三方api解析

  10. 10

    如何使用cxf componnet使用Apache骆驼调用第三方Web服务

  11. 11

    如何使用php从第三方网站解析格式错误的RSS feed?

  12. 12

    如何在Spring MVC中使用第三方WSDL服务

  13. 13

    如何在C#中使用第三方https wsdl Web服务

  14. 14

    使用 .NET 调用第三方 API 服务器端并传递变量以在 Javascript 中使用

  15. 15

    如何使用第三方@ConfigurationProperties @Bean?

  16. 16

    ImageJ:如何使用第三方插件API?

  17. 17

    如何使用第三方组件

  18. 18

    如何使用ASP.NET Web API向第三方公开URL

  19. 19

    如何查找第三方库中正在使用的第三方组件

  20. 20

    没有第三方库,如何完整解析HTML?

  21. 21

    使用Maven解析JUnit结果XML格式(由第三方工具创建)

  22. 22

    在解析中使用第三方库进行云代码处理时出现ReferenceError

  23. 23

    如何以编程方式从客户端捕获第三方Web服务xml

  24. 24

    AngularJS,传单。如何从第三方服务动态获取纬度和经度坐标?

  25. 25

    如何在“第三方服务器”上对GKLocalPlayer进行身份验证?

  26. 26

    如何定期将Redis数据发送给第三方服务?

  27. 27

    如何通过第三方许可服务从卖方获得退款许可

  28. 28

    如何向第三方服务器发出承诺电话?

  29. 29

    如何为第三方客户端配置WCF服务终结点

热门标签

归档