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

标签 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 是外部的,我无法更改任何内容。结果是具有两个属性的数组的数组。我不想用 String[][] 中的 GSON 在 java 中解析它,而是想要一个 Asks 和 Bids 类。 Asks 类应该包含一个 Ask 对象的数组,并且 Ask 对象应该有两个变量:value 和 amount 作为 String。这就是我希望在我的 java 代码中包含的内容。

最佳答案

如果我理解正确的话,您希望将出价类型从 String[][] 更改为 Object

如果您这样做,您将不得不考虑为该类创建一个自定义反序列化器。请参阅here了解详情。

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

关于java - 如何使用数据对象而不是 String[][],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47353424/

相关文章:

rest - 通过 REST 在 GET 查询中添加附加信息的好策略是什么?

c# - ASMX 网络服务中的 JSON 结果

c# - 我必须向我的 Web API REST 方法添加显式线程吗?

rest - ETag 和集合

java - 使用java加密整数

java - 无法完成架构更新 Envers + Firebird

java - 以编程方式在Android上创建谷歌帐户(非root设备)

java - 在java中将元素推送到Vector

java - RestLe框架中同一资源调用多个post方法

java - 如何在eclipse中使用spring Rest api将数据转换为json格式