Java后台如何接收并处理前台传过来的json格式的数组参数

业务场景:

在**记录里提高预警设置,要求当点击该记录id显示弹出层进行预警设置,由于记录中某字段含有数组格式[] 包含多个设备,则接口应判断设置该记录id时,得到前台传来的[{}]格式参数,转换json再遍历。先判断表里是否有该id、type存在 ,判断查询是否为0,如为0,则增加新的记录存入表中;如不为0,则修改设置该预警记录。

示例代码:


    public void setStationWarning() {
        JSONArray params = JSON.parseArray(getPara("param"));
        for (Object param : params) {
            JSONObject object = JSONObject.parseObject(param.toString());
            Record paras = new Record().set("frequency", object.getInteger("frequency"))
                    .set("open_warn", object.getInteger("open_warn"))
                    .set("aton_id", object.getInteger("atonId"))
                    .set("type", object.getInteger("type"));
            int result = EnavmarkStation.dao.selectStationWarnInfo(paras.getInt("aton_id"), paras.getInt("type"));
            if (result == 0) {
                EnavmarkStation.dao.addEnavmarkStationWarn(paras.getColumnValues());
            } else {
                EnavmarkStation.dao.UpdateEnavmarkStationWarnInfo(paras.getColumnValues());
            }
            renderJson(ResultCode.success("设置完成"));
        }
    }
/*查询*/
public int selectStationWarnInfo(Integer atonid,Integer type) {
		String sql = " SELECT count(*) num FROM enavmark_warntime_setting WHERE aton_id = ? AND type = ?  ";
		return Db.use("enavmsi").findFirst(sql, atonid,type).getInt("num");
	}

/*修改*/
public int UpdateEnavmarkStationWarnInfo(Object[] params) {
		String sql = " UPDATE enavmark_warntime_setting SET frequency =?, open_warn =? WHERE aton_id = ? and type = ? ";
		return Db.use("enavmsi").update(sql, params);
	}

/*添加*/
public int addEnavmarkStationWarn(Object[] params) {
		String sql = " INSERT INTO enavmark_warntime_setting( frequency,open_warn,aton_id,type ) VALUES (?,?,?,?)";
		return Db.use("enavmsi").update(sql,params);
	}

请求参数:

param: [{"id":39,"frequency":"","open_warn":"1","atonId":994140203,"type":"1"},{"id":39,"frequency":"","open_warn":"1","atonId":994140203,"type":"4"},{"id":39,"frequency":"","open_warn":"1","atonId":994140203,"type":"6"},{"id":39,"frequency":"","open_warn":"1","atonId":994140203,"type":"8"}]

测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liumce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值