实体类与String相互转换实现方式
作者:RiverSoul
时间:2026-07-11
浏览:0
使用Jackson工具类,通过JsonUtils的bean2Json方法将实体类转为JSON字符串存入数据库,再通过json2Bean方法从字符串还原实体类,实现实体类与String互转,适用于促销规则等动态配置场景,提升配置灵活性与可维护性。
实体类与String相互转换
工作里头偶然碰上了需要把实体类和字符串互相倒腾一下的需求,顺手把这过程记下来,没准儿后来人能少走两步弯路。

先看看需要转换的对象长什么样
假设有一个满减类型的配置实体,里面定义了“满几件”和“打几折”这两个关键字段。这类实体在业务里挺常见,比如促销活动规则、商品属性配置等等。
@ApiModel(description = "满减类型配置")
@Data
public class DiscountTypeConfig {
/**
* 满几件
*/
@ApiModelProperty(name = "full_goods_num", value = "满几件", required = true)
@NotNull(message = "满几件不能为空")
@Range(min = 1, message = "满几件必须大于0")
private Integer fullGoodsNum;
/**
* 打几折(百分比)
*/
@ApiModelProperty(name = "percentage_discount", value = "打几折(百分比)", required = true)
@NotNull(message = "打几折(百分比)不能为空")
@Range(min = 1, max = 99, message = "打几折(百分比)必须大于0小于100")
private Integer percentageDiscount;
接下来是工具类,这块是关键
要完成互转,得借助JSON这把瑞士军刀。我们用Jackson来干这个活,代码不复杂,但功能齐全:支持对象转字符串、字符串转对象、字符串转List、字符串转Map——基本覆盖了日常开发中的常见姿势。
package com.kaying.star.system.common.util.json;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.Ja vaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ja va.util.List;
import ja va.util.Map;
/**
* json工具类
*
*/
@Component
public class JsonUtils {
@Autowired
private ObjectMapper objectMapper;
public String bean2Json(Object data) {
try {
String result = objectMapper.writeValueAsString(data);
return result;
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
public T json2Bean(String jsonData, Class beanType) {
try {
T result = objectMapper.readValue(jsonData, beanType);
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public List json2List(String jsonData, Class beanType) {
Ja vaType ja vaType = objectMapper.getTypeFactory().constructParametricType(List.class, beanType);
try {
List resultList = objectMapper.readValue(jsonData, ja vaType);
return resultList;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public Map json2Map(String jsonData, Class keyType, Class valueType) {
Ja vaType ja vaType = objectMapper.getTypeFactory().constructMapType(Map.class, keyType, valueType);
try {
Map resultMap = objectMapper.readValue(jsonData, ja vaType);
return resultMap;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
转成字符串之后,直接塞进数据库就完了
调用工具类一行搞定:
String disConfig = jsonUtils.bean2Json(discountTypeConfig)
从数据库捞出来字符串,再变回实体类
反过来也是同样的套路:
//通过实体类转成的string String disConfig = jsonUtils.bean2Json(discountTypeConfig) //通过工具类将string转换成实体类 DiscountTypeConfig discountTypeConfig = jsonUtils.json2Bean(disConfig , DiscountTypeConfig.class)
这种做法特别适合各种动态配置场景——比如活动规则、用户个性化设置、产品参数模板等等。一句话总结:实体类转成字符串,存进数据库;从库中取出字符串,再还原成实体类,完美闭环。
总结
这其实不算什么高深技术,但胜在实用。希望这段经验能帮到正在纠结这类问题的朋友,省去自己造轮子的时间。
作者最新文章
微软推出Project Zenith:面向Windows 11开发者的AI硬件加速方案
2026-09-08 18:15
打破流量垄断,让平台经济释放普惠红利
2026-09-08 18:07
Arm AGI CPU详解:136核Neoverse V3,3nm双芯粒架构与AI数据中心部署
2026-09-08 17:18
Windows安装Docker教程:启用WSL2并运行第一个容器验证
2026-09-04 09:26
PDF转Word操作指南:在线与本地转换方法及格式检查
2026-09-03 16:03
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































