Json数据上传—>对象转换—>存入MongoDB(SpringData提供的规范)

上传json

代码实现

java 复制代码
@RestController
@RequestMapping("/api/hosp")
public class ApiController{
	
	@Autowired
	private 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();
	}
}
java 复制代码
@Service
public class HospitalServiceImpl implements HospitalService{
	
	@Autowired
	private HospitalRepository hospitalRepository;

	@Override
	public 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);
		}
		
	}
}


java 复制代码
@Repository
public interface HospitalRepository extends MongoRepository<Hospital,String>{
	//判断是否存在数据
	Hospital getHospitalByHoscode(String hoscode);
}

工具

java 复制代码
/**
	将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;
}
java 复制代码
/**
	引入依赖fastjson,进行如下转换
	将Map->字符串->对象
*/

数据库MongoDB

通过MongoDB客户端工具查看上传的数据

相关推荐
倒霉蛋小马18 分钟前
【Java集合】LinkedList源码深度分析
java·开发语言
风象南19 分钟前
SpringBoot中6种API版本控制策略
java·spring boot·后端
小周不摆烂2 小时前
Java Web从入门到精通:全面探索与实战(一)
java
cherryc_2 小时前
JavaSE基础——第六章 类与对象(二)
java·开发语言
快来卷java2 小时前
JVM虚拟机篇(三):JVM运行时数据区与方法区详解
java·jvm·mysql
whltaoin3 小时前
Java实现N皇后问题的双路径探索:递归回溯与迭代回溯算法详解
java·算法
nlog3n6 小时前
Java策略模式详解
java·bash·策略模式
Mryan20058 小时前
解决GraalVM Native Maven Plugin错误:JAVA_HOME未指向GraalVM Distribution
java·开发语言·spring boot·maven
inxunoffice9 小时前
按规则批量修改 txt/html/json/xml/csv/记事本等文本文件内容
xml·json
VX_CXsjNo19 小时前
免费送源码:Java+SSM+Android Studio 基于Android Studio游戏搜索app的设计与实现 计算机毕业设计原创定制
java·spring boot·spring·游戏·eclipse·android studio·android-studio