Bean中包含sql.Date数据类型存放进json中转换问…

2019-02-25 16:10:35来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

  今天在做课设的时候发现一个问题,在使用json向前端传递数据时候抛出了异常。

  产生的原因:我的数据表中有一张有关课程的表(course),这张表中间有两个比较特殊的字段,开课时间(starttime),结课时间(endtime)。与之对应的实体类中使用的成员的数据类型为sql.Date。操作数据的Mapper接口有一个根据老师的编号查询出有关这个老师的所有课程的方法。我在Controller层使用了Json返回数据。具体实现如下:

    /**
     * 获取当前用户的所有课程
     * @return
     */
    @RequestMapping(value="get_crruentUser_course.action",produces= {"html/text;charset=utf-8"})
    public @ResponseBody String getCrruentUserCourse(String crruentUserid) {
        
        JSONObject result = new JSONObject();
        List<Course> list = null;
        String msg = "";
        Integer code = 0;
        if(crruentUserid==null||crruentUserid=="") {
            msg = "没有获取到用户信息,请先登录";
            code = 1;
        }else {
            msg = "成功获取到用户信息";
            Integer teacherid = Integer.parseInt(crruentUserid);
            list = courseService.listCourseByTeacherid(teacherid);
        }
        result.put("msg", msg);
        result.put("code", code);
        result.put("coursrList", list);
        return result.toString();
    }

在进行service层测试的时候一点问题也没有,本以为可以轻松一遍过,但是整合前端从浏览器端进行访问时剧报错了:

抛出了jsonEcxeption。这个问题是真的有点坑,我找了好久才发现是json在转成字符串时对sql.Date类型的数据并不支持。我又不想修改数据库,值能对数据库对应的实体类进行相关的完善。在starttime 和endtime的get方法上进行了数据转化。

 

    public String getEndtime() {  
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); //进行格式化处理转化为字符串是应为包含sql.date数据的对象在json中的toString方法中会报错
        return  df.format(strattime);
    }

    public String getStrattime() {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        return  df.format(strattime);
    }    

让着两个方法返回字符串,着json转化的时候使用反射的方式就不会数据异常了。

 


原文链接:https://www.cnblogs.com/huangliang11/p/10414443.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Spring MVC 处理 Multipart/form-data

下一篇:关于获取资源文件,Class.getResource和ClassLoader.getResource