ajax返回json对象的两种写法

Posted unionline

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax返回json对象的两种写法相关的知识,希望对你有一定的参考价值。

1. 前言

dataType: 要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。

  response.setContentType("text/html"); //一般默认返回的类型自己指定(有xmlDoc、jsonObj、html、text这几种)

如果返回字符串是json的字符串,希望返回的数据为json对象,可以在返回时设置

   response.setContentType("text/json");

或者

  让其返回json字符串然后再转成json对象(见http://www.cnblogs.com/fanbi/p/7289551.html)。

 

2.方法

第一种

JS代码:

$.ajax({
		type: \'POST\',
		data : { 
			   mode:"getData", 
			   id:id,
			 },
		url : \'./data\',
		dataType: \'json\', //添加这一条语句	
		success: function(msg) {
		if(msg.status == "success"){
	 	    	//todo sth			
	 					
	 	    }
		}                              
	});  

Java代码:

String status = "{\\"status\\":\\"success\\"}";
	
//response.setContentType("text/json");
IOUtils.write(status.getBytes(), response.getOutputStream());
//或者
try (PrintWriter writer = response.getWriter();) {
    writer.write(status);
    writer.flush();
} catch (IOException e) {
    LOG.error(e.getMessage(), e);
}

第二种

JS代码:

$.ajax({
		type: \'POST\',
		data : { 
			   mode:"getData", 
			   id:id,
			 },
		url : \'./data\',
		success: function(msg) {
		if(msg.status == "success"){
	 	    	//todo sth			
	 					
	 	    }
		}                              
	});  

Java代码:

String status = "{\\"status\\":\\"success\\"}";
	
response.setContentType("text/json");
IOUtils.write(status.getBytes(), response.getOutputStream()); 
//或者
try (PrintWriter writer = response.getWriter();) {
    writer.write(status);
    writer.flush();
} catch (IOException e) {
    LOG.error(e.getMessage(), e);
}

 

以上是关于ajax返回json对象的两种写法的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC中controller返回json数据的两种方法

MVC中返回json数据的两种方式

C# web api返回类型设置为json的两种方法

前端Ajax传递Json数据,后端处理两种方式

有关Ajax实现的两种方法

后端接受对象的两种写法