# json的处理 #

后台

  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")
@ResponseBody
public 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传给后台

    //数组解析成json
var 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>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值