前端设置:
function abc(){
var bac = {name:"吃饭", address:"爬山的移动",a:{
name:"吃饭", address:"爬山的移动"
}};
// bac ={name:123,address:"abc"};
//$.post( "gec/getjson.do",bac, function( data ) {
// $("#result" ).html( JSON.stringify(data));
// },"json");
$.ajax({
type: "POST",
url: "gec/getjson.do",
data: JSON.stringify(bac),
success: function( data ) {
$("#result" ).html( JSON.stringify(data));
},
dataType: "json",
contentType:"application/json;charset=UTF-8"
});
}
后端xml:
<!-- mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven-->
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
测试表明,上面2段是等价的。
java代码:
@RequestMapping(value = "/getjson.do")
public void getJson( @RequestBody ObjectNode o ,HttpServletResponse response) throws Exception{
System.out.println(" in getJson ");
HttpServletRequest r;
Object retObject ;
long i = (reqnum++)%3;
if(i==0){
retObject = new ErrorCode();
}else if(i==1){
retObject = new Return1();
}else{
retObject = new Return2();
}
response.setContentType(" application/json;charset=UTF-8");
JsonGenerator jg = new ObjectMapper().getJsonFactory().createJsonGenerator(
response.getOutputStream(),JsonEncoding.UTF8);
jg.writeObject(retObject);
jg.flush();
//System.out.println("url"+ url );
System.out.println(o );
}