巧用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
- Request 增加自定義欄位的方式
- 自定義實現Complex類
- PhpCms自定義欄位的使用說明PHP
- 【Django drf】 序列化類常用欄位類和欄位引數 定製序列化欄位的兩種方式 關係表外來鍵欄位的反序列化儲存 序列化類繼承ModelSerializer 反序列化資料校驗原始碼分析Django繼承原始碼
- SpringBoot 預設json解析器詳解和欄位序列化自定義Spring BootJSON
- 織夢多行文字自定義欄位 支援自動換行
- 自定義元件-純資料欄位元件
- 自定義值轉換器
- laravel model自定義軟刪除欄位Laravel
- 將表結構轉換成實體欄位
- Android 使用graphics.Camera類實現自定義旋轉飄落Android
- 巧用標誌欄位實現填報資料的暫存與鎖定
- DedeCMS的checkbox多選欄位自定義取值的方法
- SpringBoot應用使用自定義的ApplicationContext實現類Spring BootAPPContext
- Mybatis-plus排除自定義欄位不查詢MyBatis
- 進位制轉換的工具類
- 巧用GenericObjectPool建立自定義物件池Object物件
- 【JAVA】自定義類載入器實現類隔離Java
- Fastjson反序列化漏洞復現ASTJSON
- Feign通過自定義註解實現路徑的轉義
- django admin中增加自定義超連結欄位Django
- 使用欄位格式化來自定義SharePoint(八)
- 使用欄位格式化來自定義SharePoint(七)
- 使用欄位格式化來自定義SharePoint(四)
- 使用欄位格式化來自定義SharePoint(二)
- 使用欄位格式化來自定義SharePoint(五)
- 使用欄位格式化來自定義SharePoint(一)
- 使用欄位格式化來自定義SharePoint(六)
- 使用欄位格式化來自定義SharePoint(三)
- Django(6)自定義路由轉換器Django路由
- 多型關聯自定義的型別欄位的處理多型型別
- 帝國CMS欄目管理增加自定義欄位值的為空判斷
- EventSource的自定義實現
- [顏色進位制轉換]js實現rgb和hex的相互轉換JS
- java自定義序列化Java
- 語法糖甜不甜?巧用列舉實現“狀態”轉換限制
- C++實現進位制轉換工具C++