我有以下代码:
WebClient c = new WebClient();
var data = c.DownloadString("https://btc-e.com/api/2/btc_usd/ticker");
//Console.WriteLine(data);
JObject o = JObject.Parse(data);
maskedTextBox11.Text = o["high"];
但它在标题中给出了错误。
答案 0 :(得分:14)
您需要添加o["high"].ToString();
而不是o["high"];
,因为JObject[]
会返回JToken
并且您正在尝试分配maskedTextBox11.Text
,这是{ {1}},用它。
如果您想要令牌所代表的对象的string
,您可以按以下方式执行此操作:
ToString()
答案 1 :(得分:4)
high
位于对象ticker
中。
{
"ticker": {
"high": 730,
"low": 671,
"avg": 700.5,
"vol": 9878677.9487,
"vol_cur": 14084.99793,
"last": 708.1,
"buy": 708.1,
"sell": 707.123,
"updated": 1391962469,
"server_time": 1391962470
}
}
首先找到正确的对象,然后将其转换为字符串。
您的代码将是这样的:
maskedTextBox11.Text = (string)o["ticker"]["high"];
或者,您也可以使用dynamic
dynamic o = JObject.Parse(data);
maskedTextBox11.Text = o.ticker.high;