SpringBoot | 返回Json實體類屬性大小寫問題


       今天遇到一個很有意思的問題,寫個微博記錄一下。前端朋友要我傳一個大寫屬性(類似於PEOPLEName)的json實體給他,可是就算把變量名寫成這樣,他收到的還是(peoplename),而且這樣寫不符合小駝峰命名規范,被領導看見會被打手板的啊。怎樣想一個兩全其美的方法既能給他想要的,又能讓我免於酷刑。就在我手足無措,冥思苦想之際,組長過來幫我解決了這個問題,下面我們來看一下這個問題的解決方式。
原因其實很簡單,是因為Jackson處理json數據時,會自動把首字母變小寫。一個注釋就可以解決這個問題,下面是代碼示例。

public class JsonVO {
    private String PEOPLEName;

    public JsonVO(String name) {
        this.PEOPLEName = name;
    }
    
    public String getPEOPLEName() {
        return PEOPLEName;
    }
}
String PEOPLEName = "Mws";

    @Override
    public JsonVO getPeopleName() {
        return new JsonVO(PEOPLEName);
    }
{
    "peoplename": "Mws"
}

可以看到就算變量名寫成大寫返回的結果依然是小寫狀態,接下來加上這個注解@JsonProperty(注:加在屬性上或getter上皆可)

@JsonProperty("PEOPLEName")
private String peopleName;

或者

@JsonProperty("PEOPLEName")
public String getpeopleName() {
     return peopleName;
}

測試一下

{
    "PEOPLEName": "Mws"
}

完美解決~




 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM