概述
近几天工作遇到一个需求需要弄个电子地图,在里面还需要能添加标识点等等,这里思考左右标识点属于电子地图里面,便将标识点作为一个内部类写在了电子地图的类中。下面上个事例代码:
package com.yuxin.iot.admin.entity;
import java.util.List;
import com.yuxin.iot.base.BaseEntity;
/**
* @author hr222
* @version 1.0
* @date 2019-01-17 09:23
* @description 电子地图中的背景和站点的关联,对应数据库中的ag_map
*/
public class MapPoint extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = 2187185700294342894L;
/**
* id
*/
private int id;
/**
* 电子地图中的俯瞰图的路径SRC
*/
private String svgPath;
/**
* 图片的宽度
*/
private int width;
/**
* @author hr222
* @version 1.0
* @date 2019-01-17 09:31
* @description 电子地图中的门信息(点信息),对应数据库中的ag_map_door
*/
public static class door extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = -7055060818138970237L;
/**
* door_id
*/
private int id;
/**
* 门禁点的doorId,对应数据表中的sys_door_point 中的door_id
*/
public int doorId;
/**
* 外部类的map的id
*/
private int mapId;
/**
* 门名称
*/
private String name;
/**
* 门状态
*/
private int status;
/**
* 门标识点的宽度
*/
private int width;
/**
* 门标识点的高度
*/
private int height;
/**
* 字体大小
*/
private int fontSize;
/**
* 门标识点的X坐标
*/
private String x;
/**
* 门标识点的Y坐标
*/
private String y;
}
}
(get/set方法排除)这里的内部类必须是静态内部类,不然下面的JSON无法绑定到数据,会报MapPoint$door <init>()无法初始化的异常。数据库表中的东西就不贴上来了。直接上controller中的相关:
@RequestMapping(value = "/setDoorInfo", method = RequestMethod.POST, produces = "application/json; charset=utf-8")
public @ResponseBody String setDoorInfo(@RequestBody List<door> door){
return "success";
}
逻辑处理代码就不上了,这里debug进去是能正常绑定的。这里需要注意的点是produces后面必须要有,同时要指定编码不然中文会出现乱码。
下面是JS的
var fontSize = $("#fontSize").val();
var doorWidth = $("#doorWidth").val();
var doorHeight = $("#doorHeight").val();
if (XList.length > 0){
//用于记录门禁点信息的
var text = $("#root g text");
var doorList = [];
for (var i = 0;i < XList.length;i++){
var doorId = text[i].id;
var doorName = text[i].innerHTML;
var x = XList[i];
var y = YList[i];
var is = new Object();
is.doorId = doorId;
is.name = doorName;
is.width = doorWidth;
is.height = doorHeight;
is.fontSize = fontSize;
is.mapId = routeId;
is.x = x;
is.y = y;
doorList.push(is);
}
var json_str = JSON.stringify(doorList);
$.ajax({
url: '/smart/map/setDoorInfo' ,
type: 'POST',
async: false,
dataType : "json",
contentType : "application/json",
data : json_str,
success:function(data){
if (data == '"success"'){
layer.msg("保存成功");
}
}
});
}
这里需要将数组对象转换成为JSON对象,同时 contentType : "application/json"一定要有不然后台会报 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported的异常。
上面写的比较匆忙主要是因为公司这个项目功能比较紧,另外这个功能折腾了我一天,记录一下代码。以上是记录SPRINGMVC用JSON接受内部类的事例。
最后
以上就是舒适书包为你收集整理的SpringMVC通过JSON获取内部类的JSON对象列表的全部内容,希望文章能够帮你解决SpringMVC通过JSON获取内部类的JSON对象列表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复