日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jackson序列化实例

發(fā)布時間:2025/3/8 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jackson序列化实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?參考文章

? ? ??Jackson使用ContextualSerializer在序列化時獲取字段注解的屬性

? ? ??使用BeanSerializerModifier定制jackson的自定義序列化(null值的處理)

?

關于使用ContextualSerializer的補充

  

   BeanSerializerFactory中有如下代碼,

  

?  

關于設置SerializerModifier,如下

?  

?

   

?

兩種實現(xiàn)序列化的方式

  方式1:自定義json serialize 實現(xiàn)ContextualSerializer接口

  1. bo中自定義@ReferSerialTransfer注解

  

  2. 自定義注解 ReferSerialTransfer.java

  

  3. 自定義 json serialize實現(xiàn)

  

  4. springmvc 配置文件中 converter的配置

<mvc:annotation-driven><mvc:message-converters register-defaults="true"><bean class="org.springframework.http.converter.StringHttpMessageConverter"><constructor-arg value="UTF-8" /><property name="writeAcceptCharset" value="false" /></bean><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="prettyPrint" value="true" /></bean></mvc:message-converters> </mvc:annotation-driven>

  

  方式2:設置MappingJackson2HttpMessageConverter 對應的SerializerFactory 的SerializerModifier

  1.bo中serializer注解(JsonSerializer)

  

?

  2. springmvc配置文件中的converter配置

<mvc:annotation-driven><mvc:message-converters register-defaults="true"><bean class="org.springframework.http.converter.StringHttpMessageConverter"><constructor-arg value="UTF-8" /><property name="writeAcceptCharset" value="false" /></bean><bean factory-bean="mappingJackson2HttpMessageConverterFactory" factory-method="init"class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="prettyPrint" value="true" /></bean></mvc:message-converters> </mvc:annotation-driven><bean id="mappingJackson2HttpMessageConverterFactory" class="com.hjz.refer.utils.MappingJackson2HttpMessageConverterFactory"/>

  3.?MappingJackson2HttpMessageConverterFactory.java

  

  4. 自定義BeanSerializerModifier.java

  

?Jackson序列化實例

  是這樣的一個場景, 人員person和用戶user進行1對1關聯(lián)時,一般是 person中維護著user的id,或user中維護著person的id。前端展示的時候需要展示人員以及關聯(lián)用戶的(code 和 name),最簡單暴力的做法就是根據(jù)person id 拿到person對象,再根據(jù)person中的user id,拿到user對象,最后重新組裝一下數(shù)據(jù)。

  試想一下這個思路,項目啟動時,把user的數(shù)據(jù)id <=> {id, code, name}同步到緩存中,在序列化 person 對象中 user id時做一點兒手腳,根據(jù) user id 去緩存(如果緩存沒有,則查詢數(shù)據(jù)庫)中拿到 對應的{id, code, name},并序列化該結果。從而達到了 id 轉(zhuǎn) {id, code, name}的效果。

  寫了一個測試工程,目錄結構如下。

  

  感興趣的話請查看我的github?! ?span style="font-size:14pt;color:#3366ff;">參考源碼

轉(zhuǎn)載于:https://www.cnblogs.com/hujunzheng/p/6594320.html

總結

以上是生活随笔為你收集整理的Jackson序列化实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。