【发布时间】:2017-10-24 19:12:15
【问题描述】:
试图让这个 Bitfinex api 库工作,但得到这个异常。
一个正常的响应。内容是
[["tBTCUSD",5694.5,90.04753567,5694.6,90.83915407,-155.4,-0.0266,5694.6,68727.10536905,6007.8,5537]]
和一个错误响应。内容是
“[\”error\”,20060,\”maintenance”\]”
正常响应产生异常
ArgumentException...Can not convert Array to String
在
var array = JArray.Load(reader);
if((string)array[0] == "error") // exception
我是 json 新手,因此阅读器内容可能存在基本格式问题。似乎这个字符串没有转换为数组,因此 array[0] 包含一个数组..?
编辑:
进一步考虑,我推测 API 内容格式可能已经改变。以防万一,这似乎可以在错误响应的第一个元素处检查“错误”:
if ( array[0].GetType().IsAssignableFrom(typeof(string)) && (string)array[0] == "error")
【问题讨论】:
-
正常内容和错误内容具有相同的结构会很好。截至目前,正常内容是数组的数组,而错误内容是字符串数组。当内容是正常响应时,您要做的是假设错误响应。
-
array[0]不是字符串。这是一个内部数组。您希望如何将数组转换为字符串? -
我明白了。我认为代码是最新的 API,但当然可能不是这样。见编辑。 @Amy,我不知道 Json 格式,但现在我知道这是一个数组数组。