# json的处理 #

来源:互联网 发布:广州seo外包eiaike 编辑:程序博客网 时间:2024/05/16 09:19

后台

  1. 需要的jar包
    json-lib-2.4-jdk15.jar
    http://download.csdn.net/detail/hedgehog8/4237121

  2. json对象
    关键的一句:JSONObject jsonObjectBeanData = JSONObject.fromObject(BeanData);

    前台的json串  BeanData:{"keywordType":"0","keyword":"1"}    public ExportKeywordFieldBeanOne getOneBeanData(String BeanData) {    if (!BeanData.equals("{}")) {        JSONObject jsonObjectBeanData = JSONObject.fromObject(BeanData);        ExportKeywordFieldBeanOne queryExportDataFieldBeanOne = (ExportKeywordFieldBeanOne) jsonObjectBeanData                .toBean(jsonObjectBeanData, ExportKeywordFieldBeanOne.class);        logger.info(queryExportDataFieldBeanOne.getKeyword());        return queryExportDataFieldBeanOne;    } else {        return null;    }}

后台json对象解析成string对象

    public static String getJsonStr(Object o){        return JSONObject.fromObject(o).toString();    }

3.json数组

前台json数组

data:[{"keywordFlag":0,"keyword":"网址名称"}]

后台解析

JSONArray getJsonArray = JSONArray.fromObject(data);// 将结果转换成JSONArray对象的形式        JSONObject jsonObject = getJsonArray.getJSONObject(0);// 获取json数组中的第一项        queryExportDataFieldBeanOne = (QueryExportDataFieldBeanOne) JSONObject                .toBean(jsonObject, QueryExportDataFieldBeanOne.class);

4.前台的组装
单选按钮被选就赋值为1,未选就是0,组成json传给后台

从后台取得要进行单选的数据

后台的方法

${ctx}/tools/queryExportData/getExportField.shtml

/*** * 用户查询页面上查询字段的显示 *  * @return */@RequestMapping(value = "/getExportField.shtml")@ResponseBodypublic ResultList getExportField(HttpServletRequest request,String cxId) {    ResultList resultList = new ResultList();    if(StringUtils.isNotBlank(cxId)){        if(cxId.equals("1")){            List<ExportKeywordFieldBeanOne> list = new ArrayList<ExportKeywordFieldBeanOne>();            String[] fieldName = new String[] { "网址名称", "产品类型", "词性", "注册时间",                    "到期时间", "产品状态", "审核状态", "创建时间", "修改时间", "转移密码", "网址密码",                    "资料URL地址", "资料状态", "资料审核原因", "是否为姓名网址" };            ExportKeywordFieldBeanOne queryExportDataFieldBean = new ExportKeywordFieldBeanOne(fieldName[0],                    fieldName[1], fieldName[2], fieldName[3], fieldName[4],                    fieldName[5], fieldName[6], fieldName[7], fieldName[8],                    fieldName[9], fieldName[10], fieldName[11], fieldName[12],                    fieldName[13], fieldName[14]);            list.add(queryExportDataFieldBean);            resultList.setRows(list);            resultList.setTotal(list.size());            resultList.setFlag(true);        }else if(cxId.equals("2")){            List<ExportRegistrantFieldBeanTwo> list = new ArrayList<ExportRegistrantFieldBeanTwo>();            String[] fieldName= new String[] { "联系人姓名","密码","联系地址","邮箱","国家地区编号",                    "省份","城市","手机","电话","传真","邮政地址信息模式","交易识别号","邮编",                    "用户类型 ","注册者名称","证件类型","证件号码","创建时间","修改时间","电话-国际区号",                    "传真-国际区号","电话分机","传真分机","手机国别号","是否经过邮件激活",                    "审核状态","组织结构","注册人审核资料","隐私协议","注册商名称"};            ExportRegistrantFieldBeanTwo queryExportDataFieldBean = new ExportRegistrantFieldBeanTwo(                    fieldName[0], fieldName[1], fieldName[2],                    fieldName[3], fieldName[4], fieldName[5],                    fieldName[6], fieldName[7], fieldName[8],                    fieldName[9], fieldName[10], fieldName[11],                    fieldName[12], fieldName[13], fieldName[14],                    fieldName[15], fieldName[16], fieldName[17],                    fieldName[18], fieldName[19], fieldName[20],                    fieldName[21], fieldName[22], fieldName[23],                    fieldName[24], fieldName[25], fieldName[26],                    fieldName[27], fieldName[28], fieldName[29]                    );            list.add(queryExportDataFieldBean);            resultList.setRows(list);            resultList.setTotal(list.size());            resultList.setFlag(true);        }    return resultList;}function getFieldFun (_cxIdV){        $.post("${ctx}/tools/queryExportData/getExportField.shtml",{cxId:_cxIdV},                function(data) {                    // alert(data.flag);                    var _html = '';                    var _id = "oneDiv";                    $.each(data.rows[0],function(i,v){                                             _html += '<li style="width:130px;margin:10px 10px 0 0">'+                                    '<label class="checkbox-custom">'+                                        '<input type="checkbox" name="'+i+'" value="0" style="margin-right:5px;">'+v                                    '</label>'+                                '</li>';                    })                    if( _cxIdV == '1' ){                        _id = "oneDiv";                    } else if( _cxIdV == '2' ) {                        _id = "twoDiv";                    } else if( _cxIdV == '3' ) {                        _id = "threeDiv";                    }                    $('#'+_id+' .changeExport ul').html(_html);                    if (data.flag) {                        // alert(data.rows[0].keyword);                        // alert(data.rows[0].contactName);                    } else {                        $.ligerDialog.alert(data.msg + "出错了,请联系管理员", '失败','error');                    }                    // 复选框   1为选中,0为未选中                    $('.changeExport ul input[type="checkbox"]').change(function(){                        var _t = $(this);                        if( _t.is(':checked') ){                            _t.attr('value','1');                        } else {                            _t.attr('value','0');                        }                    })            }, "json");    }

提交到后台的json

function submitForm (){    var managedata = {};    var _cxId = $("#cxId").val();    var _email = $("#email").val();    if( _cxId == '1' ){        managedata = {            "cxId":_cxId,            "email":_email,            'SearchData':"{",            'BeanData':"{"        }        $('#oneDiv .changeExport ul input[type="checkbox"]').each(function(){            var _name = $(this).attr("name");            var _val = $(this).val();            // managedata.BeanData[_name] = _val;            managedata.BeanData += '"'+_name+'":"'+_val+'",';        })        $('#oneDiv .searchForm ul input').each(function(){            var _name = $(this).attr("name");            var _val = $(this).val();            console.log(_name);            // managedata.SearchData[_name] = _val;            if( _name=="undefined" || _name==undefined || _name== null ){            } else {                managedata.SearchData += '"'+_name+'":"'+_val+'",';            }        })        managedata.BeanData += "}";        managedata.SearchData += "}";        JSON.stringify( managedata.BeanData);        JSON.stringify( managedata.SearchData);    } else if (_cxId == '2'){        var _email = $("#email").val();        managedata = {            'cxId':_cxId,            'email':_email,            'SearchData':"{",            'BeanData':"{"        }        $('#twoDiv .changeExport ul input[type="checkbox"]').each(function(){            var _name = $(this).attr("name");            var _val = $(this).val();            // managedata.BeanData[_name] = _val;             managedata.BeanData += '"'+_name+'":"'+_val+'",';        })        $('#twoDiv .searchForm ul input').each(function(){            var _name = $(this).attr("name");            var _val = $(this).val();            // managedata.SearchData[_name] = _val;             managedata.SearchData += '"'+_name+'":"'+_val+'",';        })        managedata.BeanData += "}";        managedata.SearchData += "}";        JSON.stringify( managedata.BeanData);        JSON.stringify( managedata.SearchData);    }    $.post("${ctx}/tools/queryExportData/showExport.shtml",managedata,function(data) {        if (data.flag) {            $.ligerDialog.alert(data.msg + "提交成功", '成功','success');        } else {            $.ligerDialog.alert(data.msg + "出错了,请联系管理员", '失败','error');        }    }, "json");}

解析从后台传来的json

    //解析json 从后台传来json数据  var data = eval(msg);  var id1 = data.rows[0].registrantId;//获取后台的json数据$.ajax({           type:"POST", //请求方式          url:"${ctx}/registrant/show.shtml", //请求路径          cache: false,             /* data:"operNum="+'001',  //传参   */        dataType: 'json',   //返回值类型         success:function(msg){           var data = eval(msg);           var id1 = data.rows[0].registrantId;           //先初始化注册人ID           $('#registrantId').val(id1);           $("#allNumber").val(msg.allNumber);           },          error:function(){              alert("error");          }          });

数组解析成json传给后台

    //数组解析成jsonvar changedstr = JSON.stringify(changed[0]);//提交给后台    $.ajax({                    url : '${ctx}/registrant/listUpdate?privacyOpen='                            + privacyOpen + '&privacy=' + privacy,//向后台提交数据                      type : "post",                    async : true,                    dataType : 'json',                    data : {                        'kr' : changedstr                    },                    success : function(data) {                        $.messager.alert('消息', data.msg, 'info');                        $('#tt').datagrid('reload'); // 重新载入当前页面数据                      }                });

前台动态的循环json

<!DOCTYPE html>

<head>    <meta charset="utf-8" />    <title></title>    <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script></head><body>    <div>        <div class="order_item">        </div>    </div>    <script>        var date = [{            "name": "商品1",            "number": "10"        }, {            "name": "商品2",            "number": "20"        }]        var _html = "";        for(var i = 0; i < date.length; i++) {            _html += '<div class=name>' + date[i].name + '</div>';            _html += '<p class=price>' + date[i].number + '</p>';        }        $('.order_item').html(_html);    </script></body>

0 0
原创粉丝点击