天天看點

Jackson序列化執行個體

  

Jackson序列化執行個體

   BeanSerializerFactory中有如下代碼,

Jackson序列化執行個體

   

Jackson序列化執行個體

   

Jackson序列化執行個體

  1. bo中自定義@ReferSerialTransfer注解

Jackson序列化執行個體

  2. 自定義注解 ReferSerialTransfer.java

Jackson序列化執行個體

  3. 自定義 json serialize實作

Jackson序列化執行個體

  4. springmvc 配置檔案中 converter的配置

  1.bo中serializer注解(JsonSerializer)

Jackson序列化執行個體

  2. springmvc配置檔案中的converter配置

  3. MappingJackson2HttpMessageConverterFactory.java

Jackson序列化執行個體

  4. 自定義BeanSerializerModifier.java

Jackson序列化執行個體

  是這樣的一個場景, 人員person和使用者user進行1對1關聯時,一般是 person中維護着user的id,或user中維護着person的id。前端展示的時候需要展示人員以及關聯使用者的(code 和 name),最簡單暴力的做法就是根據person id 拿到person對象,再根據person中的user id,拿到user對象,最後重新組裝一下資料。

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

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

Jackson序列化執行個體