如何从URL,Windows Phone 8.1(C#)获取我的Json对象

时间:2015-10-08 14:07:49

标签: c# json windows-phone-8 webclient

假设我有这些数据:

{
    "A": "Z",
    "B": {
        "C": "Y",
        "D": "X"
    }
}

存储在this链接中。

现在,我想在点击按钮时从我的手机应用程序中获取此数据。

private void login(object sender, RoutedEventArgs e)
{
    //I want to read the json data here        
}

以前我尝试WebClientDownloadStringAsync方法。但是System.Net中不再提供此类。我想知道我可以学习如何使用url获取和发布数据的地点和文档。

感谢。

2 个答案:

答案 0 :(得分:1)

greater :: Ord a => [a] -> [a] -> [a]
greater xs = map fst . filter ((>) <$> fst <*> snd) . zip xs

example :: [Int]
example = greater [1,5,8] [2,4,9] -- result is [5]

顺便说一句。 WebClient绝对可以在.NET中使用

答案 1 :(得分:0)

如果您确实不想使用Web Client(较旧版本)并想要使用较新的Http Client,请使用以下代码。

public static string GetJsonData()
{
    var promise = GetWebStringAsync("https://api.myjson.com/bins/2hxei");
    // do something else if needed
    var jsonData = promise.Result;
    return jsonData; //{"A":"Z","B":{"C":"Y","D":"X"}}
}

public static async Task<string> GetWebStringAsync(string uri)
{
    using (var client = new HttpClient())
    {
        var stringTask = await client.GetStringAsync(uri);
        return stringTask;
    }
}

在此,如果您愿意,您可以直接执行var stringTask = await client.GetStringAsync(uri),而不是var jsonString= client.GetStringAsync(uri).Result。但是你会失去aynchronous方法的好处,并且调用将是同步的。调用线程将在那里等待,直到从Web调用收到响应。