导航

FastJson

Posted on 2017-10-17 09:06  耍流氓的兔兔  阅读(132)  评论(0编辑  收藏  举报

 

  前后台最常用的交互方式是表单交互,而前台语言是js,后台为Java语言;显然,二者的原理、机制、语法并不兼容,二者产生的对象也不能被对方解读。在网络传输中,使用的是请求-响应,即无论后台传递什么类型的数据,也不论前台传回的什么数据,网络层均当作字符串进行处理。所以,前后台传递数据就只能使用字符串,即各自完成一个转换过程,将要发送的数据转为字符串,将要收到的字符串解析成自己的对象。因为传输的字符会涉及前后台双方的解析和处理,所以双方最好使用一种通用的规则来进行编辑、转换字符串,这个标准或协议就是JSON,JSON用于交换数据,是一种string,一种独立与平台的数据格式。即前台需要将数据转为JSON发送给后台,后台使用JSON解析数据,转换成自己需要的类型

  Fastjson是阿里的开源JSON解析库,可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean

  Fastjson API:https://www.w3cschool.cn/fastjson

Fastjson:

  toJSONString:将Java对象序列化为JSON字符串

JS:
  
  JSON.stringify:将 JavaScript 值转换为 JSON 字符串

 

后代向前台传递数据:

    @RequestMapping("/list")
    @ResponseBody
    public DataGridResult getPage(@RequestParam Map<String, Object> params){
        //查询列表数据
        Query query = new Query(params);
        return sysRoleService.getPageList(query);
    }

前台向后台提交数据:

            $.ajax({
                type: 'POST',
                url: url,
                data: JSON.stringify(vm.role),
                success: function(r){
                    if(r.code == 0){
                        layer.alert('操作成功', function(index){
                            window.location.href = 'index';
                        });
                    }else{
                        layer.alert(r.msg);
                    }
                }
            });
    @RequestMapping("/save")
    @ResponseBody
    public R save(@RequestBody SysRole role){
        sysRoleService.save(role);
        return R.ok();
    }