如何解析从Windows商店应用程序中的URL检索到的json?

时间:2013-06-27 09:34:43

标签: json windows-store-apps

我试图调用一个url,抓住返回的json并解析它以提取信息。

这是我在C#windows store app中的代码。

var client = new HttpClient();
var uri = new Uri("http://api.geonames.org/citiesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&lang=de&username=demo");
string jsonstring = await client.GetStringAsync(uri);
var parsedResponse = JsonArray.Parse(jsonstring); 

在这一行我收到以下错误:

  

mscorlib.dll

中出现未处理的“System.Exception”类型异常      

WinRT信息:位置0的字符无效。

     

其他信息:无效的JSON字符串。

2 个答案:

答案 0 :(得分:1)

如果你在http://jsonlint.com/尝试Json验证器,JSON似乎是有效的,你应该尝试JSON .NET是最常用的库,用于在.NET http://james.newtonking.com/pages/json-net.aspx中使用JSON。

我也看到你正在调用JsonArray.Parse我不是在起诉但是它让我认为它期待一个数组[],但响应是一个对象{}。如果有方法JsonObject.Parse,它可能适合您。

答案 1 :(得分:0)

这是因为返回的String是JSON对象而不是Array。试试这个

 var parsedResponse = JsonObject.Parse(jsonstring);