2011-06-18 69 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)無法修復,您可以通過簡單地連接缺少的字符來「固定」其輸出。