首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于spring 通过ajax返回json的有关问题

2012-12-28 
关于spring 通过ajax返回json的问题?请问spring 通过ajax怎么返回json呢?这里是我的代码:前台:function xi

关于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;


     
    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。

楼主给我分啊 

[其他解释]
不要拼接的json数据格式,
[其他解释]
这个已经可以返回json了啊
[其他解释]

引用:
这个已经可以返回json了啊


我需要把list返回,这里只能返回字符串啊
[其他解释]
JSONObject 这个类型需不需要导包的?
[其他解释]
$.getJSON(“url”, 回调函数);
jquery这个可以直接获取json数据,方便
[其他解释]
没人吗?。。。。。
[其他解释]
引用:
JavaScript code??



1

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

支持。顶
[其他解释]
引用:
JavaScript code??1$.getJSON(“url”, 回调函数);jquery这个可以直接获取json数据,方便
+1
[其他解释]
$.getJSON(“url”, 回调函数);

这个写在什么地方呢??
[其他解释]
大神们,明天就要到限啦,跪求啊
[其他解释]
既然是返回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,直接返回!
[其他解释]
直接采用jackson的工具,ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(stars)把这个return了就可以了
[其他解释]
springMVC中@ResponseBody标签就相当于转json了,直接返回list集合就ok啥也不用做,只要加入@ResponseBody就可以了
[其他解释]
@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了
[其他解释]
擦,
JSONArray json = JSONArray.fromObject( stars );

用这个就行,只是要导几个包!找找json-lib的一些依赖包吧!

热点排行