簡體   English   中英

spring boot rest api響應中對象字段的順序發生變化

[英]Order of object fields in spring boot rest api response changes

我有以下模型類:

package com.restAPIExmaple;

public class ApiModel {
    
    private String City;
    private String TeamName;
    private String QBName;
    
    
    public ApiModel() {
        
    }

    public ApiModel(String city, String teamName,  String qBName) {
        
        City = city;
        TeamName = teamName;
        QBName = qBName;
        
    }

    public String getCity() {
        return City;
    }

    public void setCity(String city) {
        City = city;
    }

    public String getTeamName() {
        return TeamName;
    }

    public void setTeamName(String teamName) {
        TeamName = teamName;
    }

    public String getQBName() {
        return QBName;
    }

    public void setQBName(String qBName) {
        QBName = qBName;
    }

}

這是服務類:

package com.restAPIExmaple;
import java.util.List;
import org.springframework.stereotype.Service;
import java.util.Arrays;

@Service
public class ApiService {
    
    private List <ApiModel> score = Arrays.asList(
            new ApiModel("Jacksonville","Jaguars","Gardner Minshew"),
            new ApiModel("Tempa Bay", "Buccaneer", "Tom Brady"),
            new ApiModel("San Fran", "49rs", "Jimmy Garoppolo"),
                        
            );
    
    public List<ApiModel> getScores()
    {
    return score;
    }
    
    public ApiModel getTeam(String team){
        
        return score.stream().filter(t -> t.getTeamName().equalsIgnoreCase(team)).findFirst().get();
        
        
    }   

}

控制器如下:

package com.restAPIExmaple;

import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;


@RestController
@RequestMapping("/football")
public class ApiController {
    @Autowired
    private ApiService apiService;
    
@GetMapping(value = "/scores", produces = {MediaType.APPLICATION_XML_VALUE,
                                          MediaType.APPLICATION_JSON_VALUE})

public List<ApiModel> getScores(){
    return apiService.getScores();
    
}

@GetMapping(value="/{team}", produces = {MediaType.APPLICATION_XML_VALUE,
                                   MediaType.APPLICATION_JSON_VALUE})
public ApiModel getTeam(@PathVariable String team){
    
    return apiService.getTeam(team);
    
}   
}

這是xml中的響應:

<List>
    <item>
        <teamName>Jaguars</teamName>
        <city>Jacksonville</city>
        <qbname>Gardner Minshew</qbname>
    </item>
    <item>
        <teamName>Buccaneer</teamName>
        <city>Tempa Bay</city>
        <qbname>Tom Brady</qbname>
    </item>
    <item>
        <teamName>49rs</teamName>
        <city>San Fran</city>
        <qbname>Jimmy Garoppolo</qbname>
    </item>
    </List>

問題:輸出中對象屬性的順序已更改。 我無法在響應中按順序獲得 City、Team name 和 QBname。 當我使用 Eclipse 生成 getter 和 setter 時,那里的字段順序也與模型類不同。 任何的想法? 謝謝你。

以簡單的字母開頭變量名。 就是這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM