C#无法读取和解释Web API / JSON

时间:2014-06-06 18:03:39

标签: c# json api json.net

我在这里的第一个问题,可能是因为我发现了大量先前的问题&答案在这里:)我只是一个业余爱好程序员,我只知道基础知识,但我喜欢编程:D 我已经对以下问题感到头疼了2天了,我想知道你们是否可以帮助我?

我正在为我的比特币/山寨矿工(特别是NVIDIA矿工的ccminer)编程GUI监视器,我希望矿工能够在我为其设置配置时跳上最有利可图的硬币。 获取这些数字的最简单方法是通过众多网络API,例如thisthis。所以你可以看到,有很多API(会链接更多,但还没有被允许),但它们似乎都不起作用。

这是我到目前为止的代码:

class Api
{
    public static List<Coins> _download_serialized_json_data(string address)
    {
        List<Coins> coinList = new List<Coins>();
        using (WebClient web = new WebClient())
        {
            string jsonData = web.DownloadString(address);
            JObject json = JObject.Parse(jsonData);


            for (int i = 1; i <= 10; i++)
            {
                Coins c = new Coins();
                c.tag = json["coins"][i]["tag"];

                coinList.Add(c);
            }
        }

        return coinList;
    }
}

public class Coins
{
    public string tag { get; set; }
}

ATM,我正在使用调试模式来查看对象内部的内容,但是当我尝试在此api(或任何其他具有相应元素)的情况下使用我的方法时,但是

c.tag = json["coins"][i]["tag"];

错误了。我不知道在哪里找到确切的错误,但即使我正在尝试JArray.Parse它只是不起作用。我在某个地方犯了一个关键的错误吗?

非常感谢提前!

2 个答案:

答案 0 :(得分:1)

 c.tag = json["coins"][i]["tag"].ToString();

答案 1 :(得分:0)

你想做这样的事吗?

Webclient wc = new Webclient();
var json = wc.DownloadString("http://www.whattomine.com/coins.json"); //your 2nd link
var coins = JsonConvert.DeserializeObject<Coins>(json);

public class Coins
{
    public Dictionary<string, Coin> coins = null;
}
public class Coin
{
    public string tag { get; set; }
    public string algorithm { get; set; }
    public double block_reward { get; set; }
    public int block_time { get; set; }
    public int last_block { get; set; }
    public double difficulty { get; set; }
    public double difficulty24 { get; set; }
    public double nethash { get; set; }
    public double exchange_rate { get; set; }
    public string market_cap { get; set; }
    public double volume { get; set; }
    public int profitability { get; set; }
    public int profitability24 { get; set; }
}