spring入门(七)【springMVC返回json串】
现在多数的应用为了提高交互性多使用异步刷新,即在不刷新整个页面的情况下,只刷新局部,局部刷新用得最多就是ajax,ajax和后台进行交互的数据格式使用的最多的是JSON,这里简单描述,在springmvc的开发架构下如何返回JSON串。这里使用两种方式进行配置,一:fastjson;二、jackson
一、fastjson
fastson是阿里巴巴开源的一个json转化jar包,在springmvc的架构下药使用这种方式,需引入其jar包:fastjson-1.1.34.jar,这里使用的是1.1.34的版本,这里的环境是已经搭建好springmvc的开发环境,下面是在springmvc的配置文件中配置fastjson的配置文件,
1 2 3 4 5 6 7 8 9 10 11 | <!--使用fastjson的方式--> <bean id= "fastjson" class = "com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter" > <property name= "supportedMediaTypes" > <list> <value>text/html;charset=UTF- 8 </value> <value>application/json;charset=UTF- 8 </value> </list> </property> </bean> |
配置了一个bean,指定了其class的属性,且配置了属性;我们要向前台返回json,需要使用springmvc的注解@ResponseBody,所以在配置文件中需要开启mvc的注解驱动,
1 2 | <!--开启mvc的注解驱动 ,可以使用 @RequestParam 、 @ResponseBody 等注解--> <mvc:annotation-driven/> |
然后我们看Controller是如何写的
@RequestMapping("my2/{courseId}/{name}") @ResponseBody public Map<String,String> method2(@PathVariable("courseId") String courseId,@PathVariable("name") String name){ HashMap<String,String> map=new HashMap<String,String>(); map.put("name", "刘晓燕"); map.put("sex", "女"); map.put("age", "23") return map; }
此方法在Controller中,在方法上添加了@ResponseBody注解,方法的返回值是一个Map,通过这种方式就你可以向前端返回JSON对象,为什么我们返回的一个Map对象到了前台就是JSON对象了,因为我们在配置文件中配置了基于fastjson的bean(bean的id为fastjson),fastjson就可以为自动把map对象转化为json对象返回到前台。
前台的ajax请求这里不再给出,和一般的ajax是一样的,在回调函数中直接使用json对象即可。
二、jackson
jackson是另外一种把java对象转化为json对象的jar包,要使用此种方式需要引入以下三个jar包:jackson-annotations-2.6.0-rc4.jar、jackson-core-2.6.0-rc4.jar、jackson-databind-2.6.0-rc4.jar,这里使用的最新的jackson的jar包,下面是在配置文件中的配置,
<!--spring4中返回json串的配置方式--> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jsonHttpMessageConverter" /> </list> </property> </bean>
<!--配置jackson的bean,这里使用的spring4中的配置-->
<bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
配置了jackson的bean,这里的环境是spring4的环境,所以这里需要配置的class为,
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
如果是spring3的话,那么应该使用下面的class配置,
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
其他的都和spring4的环境保持不变,controller的代码都保持不变。
以上是在srpingmvc环境下两种jar包返回json对象的配置方式,其关键在于配置文件中的配置。
有不正之处欢迎指出!谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)