json前后台传输String的处理

本文介绍了一种从前台接收JSON字符串并将其转换为Java对象列表的方法,并提供了将Java对象及列表转换为JSON字符串的实用函数。同时展示了如何在前端通过AJAX解析返回的JSON数据并显示,以及构造发送到后台的JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一。将前台传入的json字符串进行处理

private List<SRepairDemandObj> convertJStringToList(String SDemandObjs) {
        JSONObject jsonObj = new JSONObject(SDemandObjs);
        JSONArray jsonArr = (JSONArray) jsonObj.get("demandObjs");
        List<SRepairDemandObj> sDemandObjList = new ArrayList<SRepairDemandObj>();
        if (jsonArr == null || jsonArr.length() == 0) {
            return null;
        }
        java.sql.Date createDate = new java.sql.Date(System.currentTimeMillis());
        //遍历传过来的json对象数组,取出值转换后置入对象,对象再置入list
        for (int i = 0; i < jsonArr.length(); i++) {
            JSONObject demandJObj = jsonArr.getJSONObject(i);
            SRepairDemandObj dObj = new SRepairDemandObj();
            if (demandJObj.getString("repairObjidStr") == null || demandJObj.getString("repairObjidStr").length() == 0) {
                String uid = UUID.randomUUID().toString().replaceAll("-", "");
                dObj.setRepairObjid(uid);
            } else {
                dObj.setRepairObjid(demandJObj.getString("repairObjidStr"));
            }
            dObj.setRepairName(demandJObj.getString("repairNameStr"));
            dObj.setMachineType(demandJObj.getString("machineTypeStr"));
            dObj.setRepairNum(Double.parseDouble(demandJObj.getString("repairNumStr")));
            dObj.setRepairRequest(demandJObj.getString("repairRequestStr"));
            dObj.setExpectPrice(Double.parseDouble(demandJObj.getString("expectPriceStr")));
            // dObj.setCreateDt(createDate);
            // dObj.setUpdateDt(createDate);
            dObj.setDeFlag("1");
            sDemandObjList.add(dObj);
        }
        return sDemandObjList;
    }
二.在后台处理发向前台的json(几个通用函数)

1.

public static String getObjectJson(Object object){
		if(object==null){
			 return getErrorJson("object is null");
		}
		try{
			String objStr = JSONObject.fromObject(object).toString();
			
			return   "{\"result\":1,\"data\":"+objStr+"}";
		}catch(Exception e){
			e.printStackTrace();
			return "";
		}
	}

2.

public static String getObjectJson(Object object,String objectname){
		if(object==null){
			 return getErrorJson("object is null");
		}
		try{
			String objStr = JSONObject.fromObject(object).toString();
			return   "{\"result\":1,\""+objectname+"\":"+objStr+"}";
		}catch(Exception e){
			e.printStackTrace();
			return "";
		}
	}

3.

public static String getListJson(List list){
		 if(list==null){
			 return getErrorJson("list is null");
		 }
		 String listStr = JSONArray.fromObject(list).toString();		 
		 return   "{\"result\":1,\"data\":"+listStr+"}";
	}
三,前台处理接受到的json字符串(使用ajax对success参数进行处理)

 success:function(result){
            if(result.result==1){
                $("#ana_tab").html("");
                var jsonBody = "";
                for(var i=0;i<(result.data.length);i++){
                    if(i<15){
                        var a = result.data[i].name;
                        jsonBody+="<li datav='"+goods+"'>"+result.data[i].name+"</li>";
                    }
                }
                $("#ana_tab").append(jsonBody);
                $("#ana_tab").find("li:first").addClass("active");
            }else{
                alert(result.message);
            }
        }

四。前台处理发送到后台的json
 var json = "{\"distribute\":[";
        $('#xdTable tbody tr').each(function(i){
            var inputs = $(this).find('td:last').children('input');
            if(inputs.length < 2){
                return true;//这里的作用相当于continue
            }
            var objId = inputs.eq(0).val();
            var mount = inputs.eq(1).val();
            var maxAmount = inputs.eq(2).val();
            if(mount=="" || isNaN(mount) ){
                hasExc = true;
                return false;//这里相当于break
            }
            if(mount < 0 || parseFloat(mount) > parseFloat(maxAmount)){
                hasExc = true;
                return false;//这里相当于break
            }
            sumAmount+=parseFloat(mount);
            json+=("{\""+"objId"+"\":\""+objId+"\",");
            json+=("\"mount\":\""+mount+"\"},");
        });
        json = (json.replace(/,$/,""))+"]}";





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值