springboot返回json輸出

2021-08-21 19:46:28 字數 1500 閱讀 5959

我們在進行開發的過程的難免會進行物件的返回,比如乙個使用者物件user,以及乙個集合list,map等等。在這篇部落格中我們就是需要學習一下怎麼對乙個物件中某些屬性的處理。需要補充的一點就是springboot採用的是jackson進行的序列化以及反序列化,不用我們自己去進行實現,它是自動實現。我們也可以改變它實現的方式或者說我們可以自己去定義序列化和反序列化。當然,因為springboot幫我們做的已是相當好的了,所以基本不用我們自己去進行處理。如果在開發過程中遇到特殊的需求可以自己進行一系列處理。這相對於我們使用ssm開發專案來說就避免了jar包的匯入以及設定。

首先我們建立乙個使用者類user,如下圖所示:

在這個類裡面只有最基礎的屬性:姓名,密碼,生日,描述。

我們統一對類上的一些類註解,屬性註解進行解釋以及描述。

資料隱藏:

我們在進行資料返回的時候肯定是有些屬性不希望前端可以獲取到,或者是某些資料為空的時候前端要求不必進行回傳,那麼這時候我們就可以進行屬性的隱藏。

@jsonignore:使用在某個屬性上,這樣在序列化和反序列化的時候都會忽略這個屬性,最直接的效果就是返回的json屬性是沒有這個屬性的,一般作用於密碼這系列的屬性。

@jsoninclude:使用在某個屬性上,配合它的屬性value=jsoninclude.include.non_null,表示的是如果這個屬性的屬性值為空那麼在返回前端的時候不可見。

@jsonproperty:使用在某個屬性上,這個註解有兩個作用,第一是修改返回json資料的時候key值為value指定值,第二個作用是配合屬性access=jsonproperty.access.write_only表示屬性只可以進行              序列化而不能進行反序列化,直觀效果就是返回的資料沒有該屬性。

@jsonignoreproperties:作用在類宣告處,它和@jsonignore註解的區別就是可以對多個屬性作用,直接在value屬性後面使用大括號逗號隔開即可,它的ignoreunknow屬性為true表示忽略未定義的屬性。

日期:我們直接使用日期出來的格式必然不是我們想要的,那麼我們可以使用註解:@jsonformat配合上屬性pattern標誌事件格式,timezone是時區,local是區域。在這裡必須強調的是這是把日期格式化為        string,一般應用在後台向前端傳遞資料,如果是前端的string格式需要解析為日期格式我們可以使用@datetimeformat即可。

排序:有時候為了規範好看我們也需要讓屬性按照一定順序進行排列,這時候我們就使用@jsonpropertyorder這個註解,它的屬性alphabetic預設值是false,我們設定為true即可。

大概的json資料處理使用到的註解基本上也就這些了,當然其他功能更強大的註解大家有興趣可以在下去自己學習,檢視乙個註解的使用方法和效果最好的辦法就是寫demo。

ajax SpringMVC如何返回json

ajax返回json 1 將物件轉換成json class resultdata public void seterror integer error public string getmsg public void setmsg string msg resultdata result new r...

springboot學習筆記 2 搞定json引數

springboot學習筆記 2 搞定json引數 三步搞定 注 spring boot處理 json 引數的三個步驟 一 新增fastjson的依賴到pom.xml中 com.alibaba fastjson 1.2.47 二 建立controller類 三 建立配置類 四 然後啟動 驗證即可。返...

Jquery ajax方法解析返回的json資料

最近在用jquery的ajax方法傳遞接收json資料時發現乙個問題,那就是返回的data資料,有時候可以直接作為json資料使用,可有時候又不行。查了些資料,解釋如下 ajax else if ajaxobj.status 1 未繫結微博 return true error function aj...