所以我试图从 Windows Phone 8 应用程序中的 Url 获取 Json 字符串。 我只需要调用一个返回此字符串的 callbackurl,仅此而已,但不知何故我已经坚持了好几天,我只是不知道该怎么做
我有一个包含 2 个方法的 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 文件的开头有一个名为“参数”的类,看起来像
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”语句以及我应该添加的其他代码片段
此外,一旦我能够在我的 var 中获取我的 json 数据,如果有人能告诉我如何从另一个类访问它,那就太好了!
谢谢!
最佳答案
确保从 WebClient 收到的 json 文件的结构与您解析的类结构相似,即
{
"parameter": {
"parameter1": "somestring1",
"parameter2": "somestring2",
"parameter3": "somestring3"
}
}
否则,您需要创建一个类结构,类似于您正在接收的 json 格式。
或者,您可以从 json 创建 JObject 并通过键访问值(参见此处:http://james.newtonking.com/json/help/?topic=html/LINQtoJSON.htm)
关于c# - 从 Windows Phone 8 中的 URL 获取 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25203377/