我有以下代码:
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"];
但它给出了标题中的错误。
您只需要添加o["high"].ToString();
而不是o["high"];
,因为JObject[]
返回一个JToken
并且您正在尝试为maskedTextBox11.Text
分配,这是一个string
,与它。
如果需要令牌表示的对象ToString()
,可以按如下方式执行此操作:
MyType obj = o["high"].ToObject<MyType>();
string s = obj.ToString();
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;