在我们进行springboot的model、view、controller方式进行的时候,常常会遇到需要从请求的参数中去除具体值的业务,下面我们就提供了一种Java从Object对象中解析出对象属性和对象值之后并转换为实体的过程,示例代码如下:
代码语言:javascript复制@PostMapping(value = "/cyd/test", consumes = "application/json")
public ModelAndView test(@RequestBody Object model) {
LinkedHashMap h = (LinkedHashMap) model;
/**
* String[] keys = (String[]) h.keySet().toArray(); 可以通过这种方式将对应的Object类型的model值的属性提取出来变成数组。注意这里的model是一个接受前端传送过来的json对象的媒介
*/
Entity1 e1=null;
Entity2 e2=null;
//通过containsKey方法来判断json对象中是否存在prop1属性
if (h.containsKey("prop1"))
//如果存在,将prop1作为键,使用get方法进行取值后转换类型,便能够得到对应的实体
e1 = (Entity1) h.get("prop1");
if (h.containsKey("prop2"))
e2 = (Entity2) h.get("prop2");
ModelAndView mv = new ModelAndView();
mv.addObject("Model", e1);
mv.setViewName("my/test");//指定对应路径下的视图
return mv;
}
这里涉及到的LinkedHashMap同样也是一个关键的点,这里为什么会有LinkedHashMap,HashMap的原理又是怎样的,后续我们会进行详细的分析与解释。