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

微瞰技术
领域专家: 后端开发技术领域
2017-10-30 10:33:24
如上。现在不做任何控制,返回到前端的是下表为1,2,3,4的数组
...全文
2963 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该是怎样就是怎样
下载代码方式:https://pan.quark.cn/s/957405011bdf 在计算机视觉技术,轮廓提取与心识别被视为两项核心的技术,它们对于图像处理及模式识别领域扮演着不可或缺的角色。本文将深入剖析这两种算法,并围绕"轮廓提取(心识别)算法"这一核心主题,同时结合所提供的压缩包文件"Contour",对相关知识点进行详尽的阐述。 轮廓提取算法,主要功能在于识别并分离图像的不同对象。该算法通过探测物体边缘,构建出明确的边界线,从而实现图像内部各组成部分的区分。在多色位图环境下,不同的色彩可能象征着不同的对象或区域,因此,一个性能优越的轮廓提取算法应当具备处理此类复杂场景的能力。常见的轮廓提取算法包括Canny边缘检测、Sobel算子、Laplacian算子和Hough变换等。这些算法各自具备独特的优缺点,究竟选择何种方法,需要依据具体的应用情境以及性能要求来决定。 1. Canny边缘检测:由John F. Canny所研发,这是一种自适应的多级边缘检测方法。Canny算法借助高斯滤波器来降低噪声干扰,随后运用强度梯度和非极大值抑制技术来定位最显著的边缘,最终通过双阈值检测来区分边缘与噪声。 2. Sobel算子:Sobel算子是一种基于梯度的边缘检测工具,它通过计算图像在水平和垂直方向上的梯度来探测边缘。此方法操作简便且效率较高,但可能对图像的噪声较为敏感。 3. Laplacian算子:Laplacian算子是一种二阶导数算子,能够迅速识别图像的尖峰(即边缘)。然而,它容易受到噪声的影响,因此通常需要与其他技术结合使用,例如Gaussian滤波。 4. Hough变换:Hough变换是一种在参数空间进行边缘检测的方法,它能够检测出任意...

67,535

社区成员

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

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