首页 > 数据库技术 > 详细

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

时间:2019-02-21 19:31:47      阅读:209      评论:0      收藏:0      [点我收藏+]

  今天在做课设的时候发现一个问题,在使用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转化的时候使用反射的方式就不会数据异常了。

 

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

原文:https://www.cnblogs.com/huangliang11/p/10414443.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!