如何使用数据对象而不是String [] []

时间:2017-11-17 14:52:44

标签: java rest

我正在调用RESTful api,它给出了以下响应:

{
    "asks": [
        [
            "219.82",
            "2.19"
        ],
        [
            "219.83",
            "6.05"
        ]
    ],
    "bids": [
        [
            "219.40",
            "17.46"
        ],
        [
            "219.13",
            "53.93"
        ]
    ]
}

我的数据对象实现现在看起来像这样:

public class OrderBook implements Serializable {

    /**
     * list containing the price and amount of all bid orders
     */
    private String[][] bids;

    /**
     * list containing the price and amount
     * of all ask orders
     */
    private String[][] asks;
}

如何用数据对象替换此String [] []并确保GSON仍然可以解析它?

api是外部的,我无法改变任何东西。结果是一个包含两个属性的数组数组。我没有使用GSON在String [] []中解析这个问题,而是想要一个Asks和Bids类。 Asks类应该包含一个对象的数组Ask和对象Ask应该有两个变量:value和amount是String。这就是我想在我的java代码中使用的内容。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您需要将出价类型从String[][]更改为Object

如果您这样做,则必须考虑为该类创建自定义反序列化器。有关详细信息,请参阅here

但是:不要那样做。你为什么要放弃类型安全?当您愿意减少类型信息时,Java源代码的质量会改善。