如何从json URL中获取数据并放在表单上?

时间:2013-04-19 04:25:20

标签: c# json winforms system.net

以下网址代表一长串数据:http://api.bitcoincharts.com/v1/markets.json

我注意到在url的末尾它是.json扩展名,所以我已经研究过了。

我已下载JSON.NET并在我的c#.net源代码中引用它。

在这个长字符串中,我需要从“符号”中获取以下数据:“mtgoxUSD”并将其放在我的表单上;

1)“出价” 2)“高” 3)“问” 4)“平均” 5)“低”

我真的很困惑如何正确提取这些数据,因为URL是一个巨大的字符串。

以下代码段是我编码的内容,因为我对如何继续进行了难以理解。

public void Grab()
    {
        using (var tradeClient = new System.Net.WebClient())
        {
            var json = tradeClient.DownloadString("http://api.bitcoincharts.com/v1/markets.json");
        }
    }

请指导我或引用我如何开始,因为我以前从未处理过json扩展或文件!

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用Newtonsoft.Json.Linq库

来使用JArray array = (JArray) JsonConvert.DeserializeObject(json);

答案 1 :(得分:0)

试试这个:

using (WebClient wc = new WebClient())
{
    var json = wc.DownloadString("http://coderwall.com/mdeiters.json");
    var arrJson = JsonConvert.DeserializeObject<string[][]>(json);
}

或者您可以创建一个Object / Class并将此json转换为该Object。请参阅此link以供参考。请参阅下面的示例代码和类:

using (WebClient wc = new WebClient())
{
    var json = wc.DownloadString("http://coderwall.com/mdeiters.json");
    var jsonMarket = JsonConvert.DeserializeObject<Market>(json);
}

public class Market
{
    [JsonProperty("high")]
    public string High{ get; set; }

    [JsonProperty("latest_trade")]
    public string LatestTrade { get; set; }

    [JsonProperty("bid")]
    public string Bid{ get; set; }

    [JsonProperty("volume")]
    public string Volume{ get; set; }

    [JsonProperty("currency")]
    public string Currency{ get; set; }

    [JsonProperty("currency_volume")]
    public string CurrencyVolume{ get; set; }

    [JsonProperty("ask")]
    public string Ask { get; set; }

    [JsonProperty("close")]
    public string Close { get; set; }

    [JsonProperty("avg")]
    public string AVG { get; set; }

    [JsonProperty("symbol")]
    public string Symbol { get; set; }

    [JsonProperty("low")]
    public string Low { get; set; }
}