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

微瞰技术
博客专家认证
2017-10-30 10:33:24
如上。现在不做任何控制,返回到前端的是下表为1,2,3,4的数组
...全文
2798 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该是怎样就是怎样

67,513

社区成员

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

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