请问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;
}
}
这里是我的代码:
前台: 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;
}
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("data",stars);
import net.sf.json.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,直接返回!
mapper.writeValueAsString(stars)把这个return了就可以了
把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。楼主给我分啊
JSONArray json = JSONArray.fromObject( stars );
用这个就行,只是要导几个包!找找json-lib的一些依赖包吧!
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了