【发布时间】:2016-05-06 10:03:02
【问题描述】:
我正在使用这个使用 APIs to communicate with the online trading platform Poloniex 的 C# 项目。
此代码应该在钱包中获取余额:
var x = await polo_client.Wallet.GetBalancesAsync();
虽然这段代码给出了这个错误:
获取钱包时出错:无法创建类型为 Jojatekok.PoloniexAPI.WalletTools.IBalance 的实例。
类型是接口或抽象类,不能实例化。
路径 '1CR.available',第 1 行,位置 20。
在 Helper.cs 中:
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times")]
internal static T DeserializeObject<T>(this JsonSerializer serializer, string value)
{
using (var stringReader = new StringReader(value))
{
using (var jsonTextReader = new JsonTextReader(stringReader))
{
return (T)serializer.Deserialize(jsonTextReader, typeof(T));
}
}
}
调用它的代码是:
public T GetData<T>(string command, params object[] parameters)
{
var relativeUrl = CreateRelativeUrl(command, parameters);
var jsonString = QueryString(relativeUrl);
var output = JsonSerializer.DeserializeObject<T>(jsonString);
return output;
}
谁能告诉我为什么反序列化这个 JSON 响应时出错?
响应是 JSON,这里是它的一个示例:
{
"1CR":{"available":"0.00000000","onOrders":"0.00000000","btcValue":"0.00000000"},
"ABY":{"available":"0.00000000","onOrders":"0.00000000","btcValue":"0.00000000"}
}
【问题讨论】:
-
你能添加调用你的通用反序列化函数的代码吗?
标签: c# json json-deserialization