反序列化多维数组GSON

时间:2011-06-18 18:43:51

标签: java arrays json gson

我想反序列化以下json数据https://mtgox.com/code/data/getDepth.php。我一直在收到错误。以下是我的代码。

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(){}
}

错误是get是com.google.gson.JsonParseException:期待找到的对象:“问”

有什么想法吗?感谢

1 个答案:

答案 0 :(得分: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)无法修复,您可以通过连接丢失的字符来“修复”其输出。