Java从Object取值

2021-05-08 11:18:56 浏览数 (1)

在我们进行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的原理又是怎样的,后续我们会进行详细的分析与解释。

0 人点赞