巧用fastjson自定義序列化類實現欄位的轉換
專案中突然需要增加另一個欄位的查詢,而這個查詢需要查另一張表的記錄。
但現在產品很多地方都要增加該欄位,如何最快的實現該功能呢。
辦法如下:
通過fastjson序列化時,增加該欄位的序列化類,該序列化類通過CODE查詢名稱,並序列化到前端。
- VO的功能修改
@Data
public class SysDictItemSelectVo implements Serializable{
private static final long serialVersionUID = 1L;
@JSONField(serializeUsing=ToSystemNameSerializer.class)
private String systemName;
public String getSystemName(){
return this.getCode();
}
}
- 序列化的類的屬性
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import java.io.IOException;
import java.lang.reflect.Type;
public class ToSystemNameSerializer implements ObjectSerializer {
public static final ToSystemNameSerializer instance = new ToSystemNameSerializer();
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
int features) throws IOException {
SerializeWriter out = serializer.out;
if (object == null) {
out.writeNull();
return;
}
//原來的值code
String strVal = object.toString();
System.out.println(strVal);
//通過code查詢相關名稱,測試先寫死值
String name="std";
out.writeString(name);
}
}
經測試,序列化正常,其他地方只需要在VO增加該註解即可.
相關文章
- 巧用欄位對映實現指定欄位的搜尋
- springbootredis自定義序列化方式(fastJson)Spring BootRedisASTJSON
- 自定義ALV欄位分類時注意
- Request 增加自定義欄位的方式
- PhpCms自定義欄位的使用說明PHP
- 自定義實現Complex類
- UWP中實現自定義標題欄
- 【Django drf】 序列化類常用欄位類和欄位引數 定製序列化欄位的兩種方式 關係表外來鍵欄位的反序列化儲存 序列化類繼承ModelSerializer 反序列化資料校驗原始碼分析Django繼承原始碼
- 自定義Object與XML互換(序列化)ObjectXML
- laravel model自定義軟刪除欄位Laravel
- RemoteViews一 仿qq音樂自定義通知欄實現快捷切換歌曲REMView
- 巧用標誌欄位實現填報資料的暫存與鎖定
- SpringBoot 預設json解析器詳解和欄位序列化自定義Spring BootJSON
- 自定義值轉換器
- Mybatis-plus排除自定義欄位不查詢MyBatis
- 將表結構轉換成實體欄位
- 【JAVA】自定義類載入器實現類隔離Java
- DedeCMS的checkbox多選欄位自定義取值的方法
- FastJson 進行資料轉換的 實力ASTJSON
- CodingBlock客戶化自定義新欄位BloC
- Fastjson反序列化漏洞復現ASTJSON
- 進位制轉換的工具類
- java自定義序列化Java
- Native Query的自定義轉換器
- 多型關聯自定義的型別欄位的處理多型型別
- EventSource的自定義實現
- Android 使用graphics.Camera類實現自定義旋轉飄落Android
- 自定義View:畫布實現自定義View(折線圖的實現)View
- 自定義View:自定義屬性(自定義按鈕實現)View
- 織夢後臺新增自定義欄位樣式修改
- DEDE檢測重複自定義欄位禁止釋出
- django admin中增加自定義超連結欄位Django
- 巧用GenericObjectPool建立自定義物件池Object物件
- 如何在MySQL中實現替換欄位部分內容MySql
- Django(6)自定義路由轉換器Django路由
- drf——Request原始碼分析、序列化元件、序列化類的使用(欄位類和引數)、反序列化校驗和儲存原始碼元件
- Flutter自定義實現神奇的卡片切換檢視Flutter
- Elasticsearch實現自定義排序外掛(轉載)Elasticsearch排序