后台
需要的jar包
json-lib-2.4-jdk15.jar
http://download.youkuaiyun.com/detail/hedgehog8/4237121json对象
关键的一句: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>