前言
Java后端接受前端传来的 json 数据,并写入数据库。
如果前端传来的是嵌套的 json 数据,则不能直接写入数据库。
那该怎么办呢?
解决办法
在后端使用两个 model,如 DTO 和 VO ,其中 VO 用来接受前端数据,DTO 用来写入数据库。
在 VO 中,嵌套json 字段的返回类型定义为 JSONObject;在 DTO 中,对应字段的返回类型定义为 String,因为只有 String 可以顺利写入数据库。
使用 VO 接受前端传来的数据,并将对应的 json 字段,转为 String,set 到 DTO 中,核心代码如下:
...
public int store(VO vo){
JSONObject spec = vo.getSpec();
String string = JSONObject.toJSONString(spec);
DTO dto = vo2Dto(vo);
dto.setSpec(string);
return baseMapper.insert(dto);
}
public DTO vo2Dto(VO vo){
...
}
每天学习一点点,每天进步一点点。