在Spring MVC项目中,使用ResponseBody,如何让List>。返回到前端的是一个正常的json

微瞰技术
领域专家: 后端开发技术领域
2017-10-30 10:33:24
如上。现在不做任何控制,返回到前端的是下表为1,2,3,4的数组
...全文
2965 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cathy313 2017-11-02
  • 打赏
  • 举报
回复
正好我们也要返回的是json串,我们用的是 Gson gson = new GsonBuilder().serializeNulls().create(); json = gson.toJson(对象); 我们是把对象转化为json的。像你这种集合的,我们都是转化成对象或数组
  • 打赏
  • 举报
回复
我是这么处理的,希望能帮到你 $.ajax({ type: "POST", url: "${basePath}/collect/equcategoryinfo/queryEquCategoryInfo", data: {"parentCategoryId":$("#parentCategory").val()}, success: function (data) { var items = JSON.parse(data); for (var i = 0; i < items.length; i++) { var item = items[i]; $("#category").append("<option value='" + item.id + "'>" + item.categoryName + "</option>"); } }, error: function () { pageAlert("error"); } }); @RequestMapping(value = "queryEquCategoryInfo",produces = "text/html;charset=UTF-8;") @ResponseBody public String queryEquCategoryInfo(String parentCategoryId) { EquCategoryInfoExample equCategoryInfoExample = new EquCategoryInfoExample(); equCategoryInfoExample.setOrderByClause("ORDER_BY"); List<String> categoryIdList = equCategoryInfoService .queryIdFromSchoolType(UserUtils.getCodeEduStage(school .getBusinesstypeno())); equCategoryInfoExample.createCriteria().andIdIn(categoryIdList).andParentidEqualTo(parentCategoryId); List<EquCategoryInfo> equCategoryInfoList = equCategoryInfoService .selectByExample(equCategoryInfoExample); return JacksonUtil.toJsonString(equCategoryInfoList); }
独家de记忆 2017-11-02
  • 打赏
  • 举报
回复
楼主想要一个JSON字符串返回到前端吗? 那你返回类型用String就行了
nbs_sheng 2017-11-01
  • 打赏
  • 举报
回复
设置ajax的dataType:"json"后List返回前台数据就是json数据,解析data就搞定了。
dong_19890208 2017-11-01
  • 打赏
  • 举报
回复
引用 6 楼 u011342403 的回复:
[quote=引用 3 楼 dong_19890208 的回复:] 返回的json格式跟你controller 方法返回值的数据类型是对应的,List返回的就是json数组,你要返回json对象,就应该返回一个对象,把List<Map<String,Object>>作为对象的属性返回。
也就是说我必须返回一个对象。连返回map都不行了对吗? 我昨天试了返回map。将list<Map>返回到前端。还是不行、[/quote]首先你返回的是一个LIST,SPRING只不过是帮你用JSON格式化了一下,前台当然还是个JSON数组。你要是想要JSON对象就得在后台用对象包装一下:JSON.put(code, 200); json.put(data, list); 这种到前台就是个对象; 或者用户返回值为 Map<String,List>,前台得到的也就是对象
你好sun悟空 2017-10-31
  • 打赏
  • 举报
回复
手动给他json序列化不行吗
微瞰技术 2017-10-31
  • 打赏
  • 举报
回复
引用 11 楼 shijing266 的回复:
getServItemByMecNo 这个方法的返回值没问题吧?
没问题。就是一个List<Map>的
  • 打赏
  • 举报
回复
getServItemByMecNo 这个方法的返回值没问题吧?
微瞰技术 2017-10-31
  • 打赏
  • 举报
回复
引用 9 楼 shijing266 的回复:
你截图吧,我看下你返回的数据格式是啥东东。 另外你把你数据库查询出来的数据结构也截个图。让我能明白你要返回什么格式

	public List<Map<String, Object>> getServItemByMecNo(String mecNo) {
Map<String, Object> map =new HashMap<String,Object>();
map.put("mecNo", mecNo);
map.put("delflag", HinsEnum.DelFlagStatus.NOT_DELETE.getValue());
return this.find("select servItemNo as servItemNo ,servItemName as servItemName from ServItem where mecNo=:mecNo and delflag=:delflag group by servItemNo,servItemName", map);
}

Sunyiban 2017-10-31
  • 打赏
  • 举报
回复
首先你返回的是一个LIST,SPRING只不过是帮你用JSON格式化了一下,前台当然还是个JSON数组。你要是想要JSON对象就得在后台用对象包装一下:JSON.put(code, 200); json.put(data, list); 这种到前台就是个对象
qq_39912309 2017-10-31
  • 打赏
  • 举报
回复
你要返回json,但你的返回值是List<Map<String, Object>>,这是什么鬼?返回json的话直接用JSON.toJSONString(Object object)这个方法不就行了?
  • 打赏
  • 举报
回复
确认几个问题: 1、你数据库中查出来的数据是 一个复杂对象吗? 2、responseBody返回的数据格式有配置吗?
微瞰技术 2017-10-30
  • 打赏
  • 举报
回复
引用 3 楼 dong_19890208 的回复:
返回的json格式跟你controller 方法返回值的数据类型是对应的,List返回的就是json数组,你要返回json对象,就应该返回一个对象,把List<Map<String,Object>>作为对象的属性返回。
也就是说我必须返回一个对象。连返回map都不行了对吗? 我昨天试了返回map。将list<Map>返回到前端。还是不行、
微瞰技术 2017-10-30
  • 打赏
  • 举报
回复
引用 1 楼 yewuqing007 的回复:
@RequestMapping(value = "/operator111") @ResponseBody public Message getOperator(String origTransId, String orderStat, HttpServletRequest request) { return p2PTenderResultService.operator(origTransId, orderStat); }
返回的数据压根不是对象。是多表关联查询的数据
annkee058 2017-10-30
  • 打赏
  • 举报
回复
list转json
dong_19890208 2017-10-30
  • 打赏
  • 举报
回复
返回的json格式跟你controller 方法返回值的数据类型是对应的,List返回的就是json数组,你要返回json对象,就应该返回一个对象,把List<Map<String,Object>>作为对象的属性返回。
devin_jia 2017-10-30
  • 打赏
  • 举报
回复
这样注解直接把对象转换成了json
devin_jia 2017-10-30
  • 打赏
  • 举报
回复
@RequestMapping(value = "/operator111") @ResponseBody public Message getOperator(String origTransId, String orderStat, HttpServletRequest request) { return p2PTenderResultService.operator(origTransId, orderStat); }
  • 打赏
  • 举报
回复
你截图吧,我看下你返回的数据格式是啥东东。 另外你把你数据库查询出来的数据结构也截个图。让我能明白你要返回什么格式
微瞰技术 2017-10-30
  • 打赏
  • 举报
回复
引用 7 楼 shijing266 的回复:
确认几个问题: 1、你数据库中查出来的数据是 一个复杂对象吗? 2、responseBody返回的数据格式有配置吗?
不是复杂对象,就是普通的多表查询。仅仅是键值对。 数据格式没有配置,map该是怎样就是怎样
内容概要:本文研究了一种用于永磁同步电机(PMSM)全速域运行的无传感器复合控制策略,提出了一种基于高频信号注入与自适应滑模观测器(SMO)的加权融合方法。该策略针对电机在零低速与高速不同工况下的控制难题,采用脉振方波高频注入法实现静止及低速状态下转子初始位置的精确估计,并引入模糊超螺旋滑模观测器实现高速运行时转速与位置的实时跟踪。为确保全速域内平滑过渡,设计了动态加权切换机制与相位同步校正策略,有效抑制了传统切换过程的抖振与失步现象。整个控制系统在Simulink环境构建仿真模型,经多工况测试验证,该复合控制策略在宽速范围内展现出优良的动静态性能、强鲁棒性以及良好的抗干扰能力,适用于高性能电机驱动系统的无传感器控制需求。; 适合人群:具备电机控制、现代控制理论及MATLAB/Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及从事高性能电机驱动系统开发的工程师。; 使用场景及目标:① 解决永磁同步电机在无机械传感器条件下全速域运行的转速与位置估计难题;② 学习高频注入法与滑模观测器的原理及其在低速和高速区的应用差异;③ 掌握异构观测器融合与平滑切换机制的设计方法,提升复杂控制系统的设计与仿真能力。; 阅读建议:建议读者结合文系统架构图与仿真模型逐步理解各模块功能,重点关注高频注入信号的解调过程、滑模观测器的设计与稳定性分析、加权切换逻辑的实现方式,并通过调整参数进行仿真验证,深入掌握控制策略的实现细节与优化思路。
内容概要:本文档为SECS-GEM规格说明书,详细定义了半导体制造设备与主机系统之间通信的标准化接口规范。文档涵盖了通信协议(如HSMS)、状态模型(通信、控制及设备处理状态)、设备能力实现(事件通知、数据采集、报警管理、远程控制、过程程序管理等)以及具体的消息类型和数据格式。通过状态图和消息交互场景,明确了设备在不同通信和控制状态下的行为逻辑,并规定了TCP/IP超时参数、变量命名、报警分类等级等关键技术细节,确保设备与主机间的可靠通信与协同控制。 适合人群:半导体设备制造商的技术工程师、自动化系统集成商、工厂MES系统开发人员,以及需要对接SECS/GEM协议的研发与运维人员。 使用场景及目标:①用于指导设备端GEM功能的开发与调试;②支持主机系统(如MES)正确解析设备状态、采集实时数据、下发控制指令;③实现设备报警监控、工艺程序管理、时间同步及终端信息交互等功能,提升产线自动化与信息化水平。 阅读建议:本规格书技术性强,建议结合实际通信抓包工具(如Wireshark)和SECS模拟器进行对照学习与测试验证,重点关注消息流向、状态转换条件及异常处理机制,以确保系统集成的准确性与稳定性。

67,535

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧