如何提取 JsonArray 的第一个元素是 Integer 而另一个是 JsonElements?

How extract the first element of a JsonArray that is an Integer and the other are JsonElements?

我在 Java Spring 引导项目中,该项目使用 RestTemplates 发出 API 请求。 尝试实现分页,使传入的新 JsonArray 的第一个元素为 Integer,其余为 JsonElements。 没有分页的 json 传入的值为:

[
    {
        "id":1234,
        "name": null,
        "...":...
    },...
]

这些对象及其 getter 和 setter 正确实现。 p.d 我不需要传入的 json 元素的所有属性。

public class WorkListBean extends WorkBean{
    private List<WorkBean> lsWorkBean;
}
public class WorkBean implements Serializable {
    private static final long serialVersionUID = -...L;
    private long id;
    private String name;
}

这个 returns WorkListBean[] 给客户端并且工作得很好。 但是随着分页的实现,传入的 json 是这样的:

[
    1,
    {
        "id":1234,
        "name": null
    },...
]

如何提取数组的第一个整数?

我想也许我可以使用带有对象映射器的反序列化器来创建一个自定义对象,该对象拥有一个整数和一个 WorkBean 列表或数组。但我对这个条款有点迷茫。任何人都可以确认我指的是好视野吗?

提前致谢,

Grettings LaGallinaturuleta

这是一个设计糟糕的架构。尽管在技术上是允许的,但将不同类型的元素放在同一个数组中会让每个客户都受苦。

如果您可以更改与您通话的服务器端,他们应该使用更多 user-friendly 架构,如下所示:

{
    "pageNumber":0,
    "size":5,
    "totalPages":4,
    "content":[
        {"studentId":"1","name":"Bryan","gender":"Male","age":20},
        {"studentId":"2","name":"Ben","gender":"Male","age":22},
        {"studentId":"3","name":"Lisa","gender":"Female","age":24},
        {"studentId":"4","name":"Sarah","gender":"Female","age":26},
        {"studentId":"5","name":"Jay","gender":"Male","age":20}
    ],
}

如果没有,您确实需要一个自定义反序列化器。