项目反思--学校大学生活动中心预约系统--[Json、Json字符串、Json数组、对象、List的互相转换]

来源:互联网 发布:mac版本的视频播放器 编辑:程序博客网 时间:2024/06/05 03:24

Json、Json字符串、Json数组、Java对象、List的互相转换

1.登录操作

【前端 (form表单->Json->Json字符串)】–>后端
前端–>【后端(Json字符串->Java对象)】

(1)前端 (form表单->Json->Json字符串)
前端通过ajax向后端接口POST一个Json字符串,首先将from表单里的数据获取到封装成Json:

    var loginname=document.getElementById("loginname");    var loginpassword=document.getElementById("loginpassword");    //封装json    var jsonreq={        loginname:loginname.value,        password:loginpassword.value    };

然后将Json转换成Json字符串并发送:

    var jsondate = JSON.stringify(jsonreq);        ...    xmlHttp.send(jsondate);

(2)后端 (Json字符串->Java对象)
前端向后端POST数据时是传的Json字符串,当后台接收到这个字符串时,需要转换成Java对象进行操作。接收:

     @RequestMapping(value = "/login")     @ResponseBody     public String login(@RequestBody String reqjson) {}

转换:

        //json字符串转json        User user = ResultContent.jsonstring2obj(reqjson);
    //json字符串转User对象    public static User jsonstring2obj(String jsonrs){        JSONObject jsonObject=JSONObject.fromObject(jsonrs);        User user=(User)JSONObject.toBean(jsonObject, User.class);        return user;    }

2.查询所有活动操作

【后端(List<>->Json数组->Josn字符串)】–>前端
后端–>【前端 (Json字符串->Json数组)】

(1)后端(List<>->Json数组->Josn字符串)
后端如何将从数据库里查询出来的List<>转换成Json字符串:

List<Activi> list = activiService.selectallactivi();return ResultContent.ResultList2JsonString(list);

开始转换:

    //List<Object>转Json字符串    public static String ResultList2JsonString(List lists){        JSONArray listArray= JSONArray.fromObject(lists);        return listArray.toString();    }

(2)前端(Json字符串->Json数组)
前端去GET多条数据时,后端把所有的数据转换成Json字符串,前端需要把后端返回的Json字符串转换为Json数组:

var result = xmlHttp.responseText; //响应成功s//JSON字符串----》JSON数组activiorderjsonlist = eval(result);

然后就可以对这个Json数组进行相应的操作:

    for(var i=0;i<activiorderjsonlist.length;i++) {        if(activiorderjsonlist[i].orderplace==place){            var html = "";            if (activiorderjsonlist[i].approvetype == 1) {                approvetype = "审批通过";            } else if (activiorderjsonlist[i].approvetype == 2) {                approvetype = "审批不通过";            } else {                approvetype = "等待审批";            }            }}}

3.后端返回请求控制

【后端(java对象、普通数据->Json->Josn字符串)】–>前端
后端–>【前端 (Json字符串->Json对象)】

(1)后端(普通数据->Json->Josn字符串)
后端 创建Json对象进行put、对象->Json->Json字符串的操作:

//结果控制    public static String result2jsonstring(String rs,String errormsg,Object object){        JSONObject json=null;        if(object!=null){//返回有实体类时            //对象转Json            json = JSONObject.fromObject(object);            json.put("REQUESTRS",rs);            if(errormsg!=null){                json.put("ERRORMSG",errormsg);            }        }else {//返回值不包含实体类时            Map map=new HashMap();            map.put("REQUESTRS",rs);            if(errormsg!=null){                map.put("ERRORMSG",errormsg);            }            json = JSONObject.fromObject(map);        }        //Josn转Json字符串        return json.toString();    }

(2)前端 (Json字符串->Json对象)
后端返回结果时,将数据封装成Json装换成Json字符串返回前端,前端接收到之后需要转换成Json对象:

var result=xmlHttp.responseText;//响应成功//JSON字符串---》JSON对象var jsonresult=JSON.parse(result);

之后就可以对这个Json对象进项操作:

if("SUCCESS" == jsonresult.REQUESTRS){                alert("欢迎您!"+jsonresult.username);                //跳转到相应的界面                if(2==jsonresult.usertype){//大活管理员                    window.open("adminis.html","_blank");                }else { window.location.href="allactivi.html";                } }else {    alert("登录失败!");  }
阅读全文
0 0
原创粉丝点击