从URL访问JSON值

时间:2014-01-13 01:25:55

标签: c# php json windows-8

我正在尝试从包含JSON值的URL获取数据。这些值将在我的Windows 8桌面应用程序中使用。我试过的代码如下所示。

HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(App.DataServiceUrl + "/productcategory");
var Groups = new List<GroupList>();

if (response.IsSuccessStatusCode)
{
    var content = await response.Content.ReadAsStringAsync();
    var prods = JsonConvert.DeserializeObject<dynamic>(content);
    foreach (var data in prods)
    {
        var dataGroup = new GroupList
              (
                 data.term_id,
                  data.name,
                 data.slug,
                   data.description,
                  data.taxonomy
              );
        Groups.Add(dataGroup);

    }
}

我访问的URL实际上是网站中的一个页面,我在其中调用一些函数来获取php中的一些数据,然后使用json_encode($all);返回json数据。当我访问url时,我可以看到所有JSON数据。

来自URL的数据的一个示例是:

[{"term_id":"64","name":"Argentina","slug":"argentina","term_group":"0","term_taxonomy_id":"64","taxonomy":"product_cat","description":"","parent":"13","count":"20","meta_id":"154","woocommerce_term_id":"64","meta_key":"order","meta_value":"0","cat_ID":"64","category_count":"20","category_description":"","cat_name":"Argentina","category_nicename":"argentina","category_parent":"13"},...]

但是当我尝试访问它们时,应用程序无法识别json值,例如term_id,name等(如上面的代码所示)

相反,当我运行应用程序时,我收到此错误:

  

解析值时遇到意外的字符:&lt;。路径“,第4行,第2位

如何在C#代码中获取和使用网址中的值?

2 个答案:

答案 0 :(得分:1)

你可以使用DynamicJson类来解析JSON,据我所知它是最好的选择。

答案 1 :(得分:0)

您的页面会在JSON前面生成一些随机文本。您可以使用任何HTTP调试器(我最喜欢的是Fiddler,但任何事情都可以)来确认。以下是来自http://cbbnideas.com/brydens-website/api/的响应的前几行 - 请注意JSON从第8行开始:

37



 <!--All Categories (And Sub Categories)-->

6bd8
[{"term_id":"64","name":"Argentina","slug":"argentina","term_gr...