2011-06-18 45 views
1

我想反序列化以下json数据https://mtgox.com/code/data/getDepth.php。我不断收到错误。以下是我的代码。反序列化多维数组GSON

Gson gson = new Gson(); 
String json = readHTTPS(new URL("https://mtgox.com/code/data/getDepth.php")); 
AskBids askBids = gson.fromJson(json, AskBids.class); 

我AskBids类的样子:

public class AskBids { 

private String [] [] asks; 
private String [] [] bids; 

public AskBids(){} 
} 

的误差得到的是com.google.gson.JsonParseException:期待对象发现: “问道”

任何想法?谢谢

回答

3

原始问题中链接的JSON包含超过2,800个JSON令牌,元素名称和值。这个例子的一小部分保持了完全相同的结构。

{ 
    "asks": [ 
     [ 
      18.22, 
      15.362 
     ], 
     [ 
      25.4682, 
      20 
     ] 
    ], 
    "bids": [ 
     [ 
      18.06, 
      50 
     ], 
     [ 
      18.0099, 
      32.64 
     ] 
    ] 
} 

这么说,我复制粘贴从原来的问题反序列化的代码,同时使用原来的JSON和较短的版本我上面粘贴,代码运行没有错误预期。

根据错误消息Expecting object found: "asks",我怀疑readHTTPS(URL)方法没有返回正确的结果,因为它不包括JSON的开头{。如果这是问题,但由于某种原因readHTTPS(URL)无法修复,您可以通过简单地连接缺少的字符来“固定”其输出。