当前位置: 首页 > 编程语言 > C#

从Windows Phone 8中的URL获取JSON字符串分享

时间:2023-04-11 03:07:52 C#

C#学习教程:在WindowsPhone8中从URL中获取JSON字符串我只需要调用一个返回这个字符串的callbackurl就是这样,但不知何故我已经坚持了好几天而且我只是不知道该怎么做我有一个带有2个方法的urlparser类:publicvoidParseJsonUrl(字符串url){Uriuri=newUri(url);WebClientwebClient=newWebClient();webClient.DownloadStringCompleted+=webClient_DownloadStringCompleted;webClient.DownloadStringAsync(uri);}voidwebClient_DownloadStringCompleted(objectsender,EventArgletsCompleted)jsonData=JsonConvert.DeserializeObject(e.Result);Debug.WriteLine(jsonData.parameter1);现在我只想显示我的Json字符串中包含的参数,当然我的方法会在我开始工作后做其他事情我在urlparser.cs文件的开头有一个名为“参数”的类,它看起来像公共类参数{公共字符串参数1{获取;放;}公共字符串参数2{得到;放;}publicstringparameter3{get;放;但这不起作用...我收到此错误“System.Reflection.TargetInvocationException”我遵循了本教程http://blogs.msdn.com/b/pakistan/archive/2013/06/23/10425845。aspx查看大量其他几乎相同的东西,但不幸的是,那是行不通的。在一些教程中,他们使用“DownloadString”而不是“DownloadStringAsync”,但我无法调用此方法(可能不适用于WP8),在其他一些教程中,他们在方法中使用“await”,但我不明白我在做什么到达我应该在哪里放置“等待”语句以及我应该添加哪些其他代码段此外,一旦我能够在我的var中获取我的json数据,如果有人可以告诉我如何从另一个类访问它很棒!谢谢!确保您从WebClient收到的json文件的结构与您解析的类结构相似,即{"parameter":{"parameter1":"somestring1","parameter2":"somestring2","parameter3":"somestring3"}}否则,您需要创建一个类似于您接收到的json格式的类结构。或者,您可以从json创建一个JObject并按键访问该值(请参见此处:http://james.newtonking.com/json/help/?topic=html/LINQtoJSON.htm)首先,您需要查看你的参数类是什么样子的,你可以通过这里的“jsontoclass”应用,你插入链接,应用生成参数类应该是怎样的,注意有时你必须手动解析json,还要检查您的互联网连接。所以,在弄清楚问题出在哪里之后,我想我会回答这个问题,以防有一天有人遇到同样的问题。问题是,我在webClient.DownloadStringAsync(uri)行之后的“ParseJsonUrl”函数中有一些代码;这就是问题所在。此外,ParseJsonUrl由按钮调用的函数调用,在该调用之后,该函数执行其他调用,也由按钮执行。在我需要字符串之前,所有thoose调用都会导致在执行按钮调用的所有内容之前永远不会下载字符串。解决方案是在调用我的UrlParser.ParseJsonUrl函数的类中创建DownloadStringCompleted方法,并将事件传递给其参数中的函数。然后按钮点击需要做的一切都在DownloadStringCompleted方法中设置,就像它在代码中看到的那样:myClass.Function(url);//假设url已经设置在某处}然后在MyClass中publicstringFunction(stringurl){this.url=url;URLParser解析器=newURLParser();parser.ParseJsonUrl(url,newDownloadStringCompletedEventHandler(webClient_DownloadStringCompleted));}voidwebClient_DownloadStringCompleted(objectsender,DownloadStringCompletedEventArgse){//下载字符串后需要执行的所有操作}最后在UrlParser类中publicvoidParseJsonUrl(stringurl,DownloadStringCompletedEventHandlerhandler){Uriuri=newUrientwebClient(url);=新的WebClient();webClient.DownloadStringCompleted+=处理程序;webClient.DownloadStringAsync(uri);希望有一天这对某人有所帮助!以上就是C#学习教程:在WindowsPhone8中从URL获取JSON字符串分享的全部内容,如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: