本文主要是介绍Json数据上传—>对象转换—>存入MongoDB(SpringData提供的规范),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上传json
代码实现
@RestController
@RequestMapping("/api/hosp")
public class ApiController{@Autowiredprivate HospitalService hospitalService;@PostMapping("saveHospital")public Result saveHosp(HttpServletRequest request){Map<String,String[]> parameterMap = request.getParameterMap();//调用工具进行类型转换Map<String,Object> paramMap = HttpRequestHelper.switchMap(requestMap);//调用service方法,添加到数据库hospitalService.save(paramMap);return Reult.ok();}
}
@Service
public class HospitalServiceImpl implements HospitalService{@Autowiredprivate HospitalRepository hospitalRepository;@Overridepublic void save(Map<String,Object> paramMap){//通过fastjson工具进行对参数的转换String mapString = JSONObject.toJSONString(paramMap);Hospital hospital = JSONObject.parseObject(mapString,Hospital.class);//判断是否存在数据String hoscode = hospital.getHoscode();Hospital hospitalExist = hospitalRepository.getHospitalByHoscode(hoscode);//如果不存在,进行添加,否则修改if(hospitalExist != null){hospital.setStatus(hospitalExist.getStatus());hospital.setCreateTime(hospitalExist.getCreateTime());hospital.setUpdateTime(new Date());hospital.setIsDeleted(0);hospitalRepository.save(hospital);}else{hospital.setStatus(0);hospital.setCreateTime(new Date());hospital.setUpdateTime(new Date());hospital.setIsDeleted(0);hospitalRepository.save(hospital);}}
}
@Repository
public interface HospitalRepository extends MongoRepository<Hospital,String>{//判断是否存在数据Hospital getHospitalByHoscode(String hoscode);
}
工具
/**将map集合的value,由String数组类型转为Object类型
*/
public static Map<String,Object> switchMap(Map<String,String[]> paramMap){Map<String,Object> resultMap = new HashMap<>();for(Map.Entry<String,String[]> param:paramMap.entrySet()){resultMap.put(param.getKey(),param.getValue()[0]);}return resultMap;
}
/**引入依赖fastjson,进行如下转换将Map->字符串->对象
*/
数据库MongoDB
通过MongoDB客户端工具查看上传的数据
这篇关于Json数据上传—>对象转换—>存入MongoDB(SpringData提供的规范)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!