Java Spring Responsebody,在json中命名列表对象

Java Spring Responsebody,在json中命名列表对象,java,json,spring-boot,spring-restcontroller,spring-mybatis,Java,Json,Spring Boot,Spring Restcontroller,Spring Mybatis,我正在使用Spring框架的Spring引导库开发REST服务。 我从我的服务中得到的响应是JSON,我的问题是我使用一个父类来存储作为请求结果发送的所有对象,并且在JSON数组中发送的响应没有名称 这是我的一个测试的输出: success: true, message: null, data: [ { }, { vehicleBatteryId: 3, modelTypeId: 3, cycleCount: -9640, currentCapacity: -9640, manufactureD

我正在使用Spring框架的Spring引导库开发REST服务。 我从我的服务中得到的响应是JSON,我的问题是我使用一个父类来存储作为请求结果发送的所有对象,并且在JSON数组中发送的响应没有名称

这是我的一个测试的输出:

success: true,
message: null,
data: [
{ },
{
vehicleBatteryId: 3,
modelTypeId: 3,
cycleCount: -9640,
currentCapacity: -9640,
manufactureDate: 414037682000,
manufacturerId: 10,
modeTypeCode: 461271880,
partStatus: 215692740,
lastMaintenanceDate: 428880743000
},
{
vehicleBmsId: 3,
bmsModelId: 5,
manufactureDate: 942436247000,
manufacturerId: 4,
lastMaintenanceDate: 437823118000,
partStatus: 477293493,
replaceDate: 179716409000,
replaceDistance: 4783810
}...
这就是我想要得到的结果:

success: true,
message: null,
data: {
Property1:{ },
Property2:{
vehicleBatteryId: 3,
modelTypeId: 3,
cycleCount: -9640,
currentCapacity: -9640,
manufactureDate: 414037682000,
manufacturerId: 10,
modeTypeCode: 461271880,
partStatus: 215692740,
lastMaintenanceDate: 428880743000
},...
这是父类。我希望能够在我的服务创建的每个响应中使用它,而不管该响应的细节如何

public class MasterResponse extends RequestStatus{
    private List<Object> data;

    public MasterResponse() {
        init();
    }

    public MasterResponse(boolean _success, String _message){
        super(_success, _message);
        init();
    }
    private void init(){
        this.data = new ArrayList<Object>();
    }

    public void addModel(Object newModel){
        this.data.add(newModel);
    }

    public void clearData(){
        this.data=null;
    }

    public List<Object> getData() {
        return data;
    }

    public void setData(List<Object> data) {
        this.data = data;
    }
}
public类MasterResponse扩展了RequestStatus{
私人名单数据;
公众反应({
init();
}
公共主响应(布尔值成功,字符串消息){
超级(_success,_message);
init();
}
私有void init(){
this.data=new ArrayList();
}
公共void addModel(对象newModel){
this.data.add(newModel);
}
public void clearData(){
此.data=null;
}
公共列表getData(){
返回数据;
}
公共无效设置数据(列表数据){
这个数据=数据;
}
}

有人有什么想法吗?据我所知,Spring使用Jackson转换为json,我正在探索如何使用他们目前提供的json视图函数。

您使用的是ArrayList,Jackson将其序列化为[{…},{…},] 可以对数据使用映射(即HashMap),但可能需要创建一个自定义的“push()”或add()函数,以维护索引属性。i、 e.财产1

HashMap对象将被序列化为:数据:{“index-1”:{…},“index-2”:{…}

代码的简单示例:

    private Map<String, Object> data;
    int nextIndex = 1;

    private void init(){
        this.data = new HashMap<String, Object>();
    }

    public void addModel(Object newModel){
            this.data.add("Property" + this.nextIndex, newModel);
            this.nextIndex++;
    }
私有地图数据;
int-nextIndex=1;
私有void init(){
this.data=new HashMap();
}
公共void addModel(对象newModel){
this.data.add(“属性”+this.nextIndex,newModel);
这个.nextIndex++;
}

你能清楚地解释一下这句话吗?我希望能够在我的服务创建的每个响应中使用它,而不管该响应的细节如何。在我的案例中,我在控制器上使用了
@RestController
注释,并从该控制器返回了
父对象。他们工作得非常好,给出了所有类的名称。@Rahul我有许多不同的模型,代表不同的返回类型。例如:车辆和公司。我想将它们添加到“MasterResponse”中,不管它们是车辆级还是公司级。