请问spring 通过ajax怎么返回json呢?
这里是我的代码:
前台:           function xiao(){
     $.ajax({
                url: "<%=basePath %>/ajax/getStars.do",
                contentType: "application/json;charset=utf-8",
                type: "get",  
                dataType: "json",
                success: function(data) {
                 alert(data);
                },
     error: function() {
     alert("系统发生异常,请稍候再试!\n\n有任何疑问,请联系系统管理员!");
     }
            });
           }后台:@Controller
public class Ajax {
    
    @Autowired
    private StarService starService;
    
    private static final Logger logger = LoggerFactory.getLogger( Ajax.class );
    
    @RequestMapping( value = "/ajax/getStars", method = RequestMethod.GET )
    @ResponseBody
    public String getAllStar( HttpServletResponse response ) {
        logger.info( "异步查询明星" );
        List<Star> stars = starService.getAllStar();
        return null;
    }
}

解决方案 »

  1.   

    我需要把list返回,这里只能返回字符串啊
      

  2.   

    使用json的包。然后在控制层这样使用
    JSONObject jsonObject  = new JSONObject();
    jsonObject.put("data",stars);
      

  3.   

    在spring中配置json解析,然后方法返回Map类型,你只需要将list放入Map中返回,spring会自动解析
      

  4.   

    JSONObject 这个类型需不需要导包的?
      

  5.   

    $.getJSON(“url”, 回调函数);jquery这个可以直接获取json数据,方便
      

  6.   


    import net.sf.json.JSONObject;
      

  7.   

    $.getJSON(“url”, 回调函数);
    这个写在什么地方呢??
      

  8.   

    返回的是json串吧?eval(),转成json对象就是啦
      

  9.   

    既然是返回json了,你方法的返回值,直接是void就可以了。JSONObject json = new JSONObject();
    json.put("endWarehouseList", routeSearchBeanList);
    super.response().setCharacterEncoding("UTF-8");
    try {
    PrintWriter printWrite = super.response().getWriter();
    printWrite.write(json.toString());
    printWrite.flush();
    printWrite.close();
    } catch (IOException e) {
    logger.error(e, e);
    }finally{
    super.response().getWriter().close();
    }routeSearchBeanList是一个list,直接返回!
      

  10.   

    直接采用jackson的工具,ObjectMapper mapper = new ObjectMapper();
    mapper.writeValueAsString(stars)把这个return了就可以了
      

  11.   

    springMVC中@ResponseBody标签就相当于转json了,直接返回list集合就ok啥也不用做,只要加入@ResponseBody就可以了
      

  12.   

    楼主给分啊
    把js这个类型去掉  dataType: "json",
    后台加  @ResponseBody会根据返回类型自动转换json@Controller
    public class Ajax {
         
        @Autowired
        private StarService starService;
         
        private static final Logger logger = LoggerFactory.getLogger( Ajax.class );
         
        @RequestMapping( value = "/ajax/getStars", method = RequestMethod.GET )
        @ResponseBody
        public List getAllStar( HttpServletResponse response ) {
            logger.info( "异步查询明星" );
            List<Star> stars = starService.getAllStar();
            return stars;
        }
    }js取值的时候, data就是你要取的list。楼主给我分啊 
      

  13.   

    擦,
    JSONArray json = JSONArray.fromObject( stars );
    用这个就行,只是要导几个包!找找json-lib的一些依赖包吧!
      

  14.   

    @Controller
    public class AjaxAction {
        
        @Autowired
        private StarService starService;
        
        //    private static final Logger logger = LoggerFactory.getLogger( AjaxAction.class );
        
        @RequestMapping( value = "/ajax/getStars" )
        @ResponseBody
        public Object getAllStar( HttpServletResponse response, HttpServletRequest request ) {
            //        logger.info( "异步查询明星" );
            List<Star> stars = starService.getAllStar();
            JSONArray json = JSONArray.fromObject( stars );
            return json.toString();
        }
    }
    在页面成功返回字符串用eval()函数解析就OK了