刚写一个springmvc+extjs的例子。
其中数据传输的时候用到了json。
查了资料配置使用@ResponseBody能够返回json类型的数据。
但是返回的格式是
[{"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我想使用这些数据。需要标准格式的例如{"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能不能返回标准得格式。
如果不能有没有什么变通的方案。
先谢谢了。

解决方案 »

  1.   

    个人认为:你需要手动生成json数据。简单写一个javabean.内有属性list与属性totalCount,然后用json包format得到就是extjs的json数据。
      

  2.   


    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);
      

  3.   

    用StringBuffer自己拼json这是最常用的方法祝楼主好运
      

  4.   

    public Map index(HttpServletRequest request,
    HttpServletResponse response,ModelMap model,int page,int limit) throws Exception {
    model.addAttribute("user", "hot");
    Map pagecontent = new HashMap();
    List root = new ArrayList();
    root = newsPostService.findAllByPage(page, limit);
    pagecontent.put("results",60);
    pagecontent.put("rows",root);
    return pagecontent;
    }