0

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

这是我在 C# windows 商店应用程序中的代码。

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 字符串。

4

2 回答 2

1

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

我还看到你打电话JsonArray.Parse给我不是起诉,但这让我觉得它期待一个数组[],但响应是一个对象{}。如果有一种方法JsonObject.Parse,它可能对你有用。

于 2013-06-27T10:28:49.213 回答
0

那是因为返回的字符串是 JSON 对象而不是数组。尝试这个

 var parsedResponse = JsonObject.Parse(jsonstring); 
于 2013-10-03T19:30:28.063 回答