我正在调用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代码中使用的内容。
答案 0 :(得分:2)
如果我理解正确,您需要将出价类型从String[][]
更改为Object
。
如果您这样做,则必须考虑为该类创建自定义反序列化器。有关详细信息,请参阅here。
但是:不要那样做。你为什么要放弃类型安全?当您愿意减少类型信息时,Java源代码的质量会不改善。