所以我正在尝试在Windows Phone 8应用程序中从URL获取Json字符串。我只需要调用一个返回此字符串的callbackurl,然后就完成了,但不知何故,我已经卡在这上面几天了,我不明白该如何做。
我有一个包含两个方法的urlparser类,它们是:
public void ParseJsonUrl(string url)
{
Uri uri = new Uri(url);
WebClient webClient = new WebClient();
webClient.DownloadStringCompleted += webClient_DownloadStringCompleted;
webClient.DownloadStringAsync(uri);
}
void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
var jsonData = JsonConvert.DeserializeObject<parameter>(e.Result);
Debug.WriteLine(jsonData.parameter1);
}
目前我只是尝试显示Json字符串中包含的一个参数,当然,一旦我让它工作起来,我的方法将执行其他操作
我在urlparser.cs文件的开头有一个名为“parameters”的类,它看起来像:
public class parameter
{
public string parameter1 { get; set; }
public string parameter2 { get; set; }
public string parameter3 { get; set; }
}
但是这并不起作用...我得到了这个错误。
'System.Reflection.TargetInvocationException'
我按照这个教程 http://blogs.msdn.com/b/pakistan/archive/2013/06/23/10425845.aspx 进行了操作,看到了很多其他的类似教程,但不幸的是,这个方法并没有起作用。在一些教程中,他们使用“DownloadString”而不是“DownloadStringAsync”,但我无法调用此方法(可能在WP8上不可用),在其他一些教程中,他们在方法中使用“await”,但我不知道应该在哪里放置“await”语句以及需要添加哪些其他代码片段。此外,一旦我能够在我的变量中获取到json数据,如果有人可以告诉我如何从另一个类中访问它,那就太好了!
谢谢!
await
,DownloadStringAsync
会返回字符串。 - Daniel A. WhiteJsonConvert.DeserializeObject<parameter>(e.Result)
步骤中还是在其他地方出现错误? - Abhishek