日期:2014-05-17  浏览次数:20792 次

关于spring 通过ajax返回json的问题?
请问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;
    }
}

------最佳解决方案--------------------
引用:
引用:这个已经可以返回json了啊

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

使用json的包。然后在控制层这样使用
JSONObject jsonObject  = new JSONObject();
jsonObject.put("data",stars);
------其他解决方案--------------------
在spring中配置json解析,然后方法返回Map类型,你只需要将list放入Map中返回,spring会自动解析
------其他解决方案--------------------
返回的是json串吧?eval(),转成json对象就是啦
------其他解决方案--------------------
引用:
JSONObject 这个类型需不需要导包的?




import net.sf.json.JSONObject;

------其他解决方案--------------------
楼主给分啊
把js这个类型去掉 
 dataType: "json",

后台加  @ResponseBody会根据返回类型自动转换json
@Controller
public class Ajax {
     
    @Autowired
    private StarService starService;