Java 对象数组转成JSON对象数组,到前台接受变成了一个个的字符该如何处理

遇到了这样一个问题,Java后台Action中将List对象数组通过FastJSON转成JSON数组,但是前台ajax收到数据遍历变成了一个一个的字符,不能通过下标获取整个对象数组了。

 

解决办法:在前端ajax的回调函数中加上 var jsons = JSON.parse( data );

后台代码如下:

@Action( value = "getAllDormitory")
public void getAllDormitory() {
	List result = dormitoryService.getAllDormitory();
	System.out.println( result.size() );
	try {
		SendMessageUtil.sendJSONMessage(JSON.toJSONString(result));
	} catch (Exception e) {
		e.printStackTrace();
	}
}

public static void sendJSONMessage( String message ) throws IOException {
	HttpServletResponse response =  ServletActionContext.getResponse() ;
	response.setCharacterEncoding("utf-8");
	response.setContentType("text/html;charset=utf-8"); 
			
	PrintWriter printWriter;
	printWriter = response.getWriter();
			
	printWriter.flush();
	printWriter.close();
		
	logger.info("SendMessageUtil - sendJSONMessage( String message ) : " +  message );
	    
}

前台Ajax接受代码:

$.ajax({
        type: 'GET',
	url: '<%=basePath%>DormitoryAction/getAllDormitory.action',
	success: function(data){
            console.log(data);
            //加上这句就可以解析成json数组,然后通过下标取对象
            var jsons = JSON.parse( data );
	    for( var i=0; i

 

你可能感兴趣的:(Java)