c# - 从 Windows Phone 8 中的 URL 获取 JSON 字符串

标签 c# json windows-phone-8 webclient

所以我试图从 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/

相关文章:

c# - 模型状态错误的全局处理程序

c# - ListBox 中的进度条显示错误的值

wpf - 设置 Style 属性后,为什么我无法覆盖控件中的属性?

javascript - 使用本地json文件查找key :value using javascript

json - 如何确定 JSON.stringify() 使用哪种编码?

json - 当元素是可选的时,如何在 json 模式中定义选择元素?

windows-phone-8 - 序列化和反序列化 Windows Phone 8 应用程序中的对象列表

c# - System.Collections.Generic.List<T> 需要 '1' 类型参数

c# - 如何防止来自 "hang"的 windows 窗体?

c# - 如何在反序列化之前调用构造函数?