springmvc和extjs融合的问题。json
刚写一个springmvc+extjs的例子。
其中数据传输的时候用到了json。
查了资料配置使用@ResponseBody能够返回json类型的数据。
但是返回的格式是
- XML code
[{"name":"123","id":2,"password":"123","age":11,"birthday":653151600000,"sex":"男"},{"name":"123","id":3,"password":"123","age":123,"birthday":677170800000,"sex":"男"},{"name":"admin","id":7,"password":"admin","age":11,"birthday":653151600000,"sex":"男"}]但是在extjs我想使用这些数据。需要标准格式的例如
- XML code
{"list":[{"id":3,"author":"dsadsa","title":"言情","price":123.0,"brief":"sdsada","bookName":"dsadsadsa"},{"id":4,"author":"dasd","title":"言情","price":123.0,"brief":"asda","bookName":"sadsa"}],"totalCount":2}包含root名、totalCount的格式。
不知道springmvc能不能返回标准得格式。
如果不能有没有什么变通的方案。
先谢谢了。
[解决办法]
个人认为:你需要手动生成json数据。简单写一个javabean.内有属性list与属性totalCount,然后用json包format得到就是extjs的json数据。
[解决办法]
- Java code
package com.dthh.util;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.util.HashMap;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;public class Resultset { /** * 传入rs,sb * @param rs * @param sb */ public static void processResultsetString(ResultSet rs,StringBuffer sb) { try { ResultSetMetaData rsmd = rs.getMetaData(); int columnCount = rsmd.getColumnCount();//字段的数量 for (int i = 1; i <= columnCount; i++) { String columnName = rsmd.getColumnName(i);//获取到字段的名称 String value=rs.getString(columnName);//取值 sb.append(columnName+":'"+value+"'"); if(i!=columnCount){ sb.append(","); } } } catch (Exception e) { e.printStackTrace(); } } }用法StringBuffer sb = new StringBuffer(); sb.append("{data:["); while(rs.next()){ sb.append("{"); Resultset.processResultsetString(rs, sb); sb.append("}"); if(!rs.isLast()){ sb.append(","); } } sb.append("]}"); String json = sb.toString(); System.out.println(json);
[解决办法]
帮顶。
[解决办法]
用StringBuffer自己拼json
这是最常用的方法
祝楼主好运