参考:http://www.cnblogs.com/ssslinppp/p/4528892.html
《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html
- 【Spring学习笔记-MVC-4】返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展:http://www.cnblogs.com/ssslinppp/p/4675495.html
文章的内容主要如下:
- 方式1:讲解如果返回单个对象的json;==>使用@ResponseBody来实现;注解方式
- 方式2:讲解如果返回多个对象的json;==>使用MappingJacksonJsonView来实现;xml配置方式
- 方式1-扩展:讲解如果返回多个对象的json;==>使用@ResponseBody来实现;注解方式
个人认为,使用@ResponseBody方式来实现json数据的返回比较方便,推荐使用。
摘要
使用Spring MVC,实现json数据的返回。
主要步骤:
- 额外添加2个jar包;
- 使用 @ResponseBody声明返回值;
- 配置<mvc:annotation-driven />;==>需要引入:xmlns:mvc="http://www.springframework.org/schema/mvc";
@ResponseBody:
作用:
该注解用于将Controller方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后(如:json格式),写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
<mvc:annotation-driven /> :
<mvc:annotation-driven /> 会自动注册
- DefaultAnnotationHandlerMapping
- AnnotationMethodHandlerAdapter
两个bean,这两个bean是spring MVC为@Controllers分发请求所必须的。并提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
需要的jar包
上面两个都是必须的。
项目结构
程序代码
Shop.java
package com.ll.model;
public class Shop {
String name;
String staffName[];
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String[] getStaffName() {
return staffName;
}
public void setStaffName(String[] staffName) {
this.staffName = staffName;
}
}
JSONController.java
package com.ll.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ll.model.Shop;
@Controller
@RequestMapping("/kfc/brands")
public class JSONController {
@RequestMapping(value="{name}", method = RequestMethod.GET)
public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
System.out.println("-----请求json数据--------");
Shop shop = new Shop();
shop.setName(name);
shop.setStaffName(new String[]{"mkyong1", "mkyong2"});
return shop;
}
}
添加: @ResponseBody作为返回值。
web.xml
<web-appid="WebApp_ID"version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Spring Web MVC Application</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
mvc-dispatcher-servlet.xml
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scanbase-package="com.ll.controller"/>
<mvc:annotation-driven/>
</beans>
开启:<mvc:annotation-driven />
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入 -->
<context:component-scanbase-package="com.ll.model"/>
</beans>
运行
参考网站
http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/
相关推荐
Spring返回json数据格式
在Spring MVC中,当控制器方法的返回值前加上`@ResponseBody`时,Spring会将返回的对象直接转换成HTTP响应体的Content,通常用于返回JSON或XML格式的数据。默认情况下,Spring MVC使用`HttpMessageConverter`来完成...
这个“Spring+Servlet读取数据库返回JSON数据(源码).zip”文件很可能是包含了一个示例项目,展示了如何结合这两个技术来从数据库获取数据,并以JSON格式返回给客户端。 首先,让我们深入理解Spring框架中的关键...
在这个“SpringMVC返回JSON数据相关Jar包”中,包含了支持SpringMVC处理JSON数据所需的关键组件。 首先,我们需要理解SpringMVC如何处理JSON数据。在SpringMVC中,我们使用`@ResponseBody`注解标记在Controller方法...
在SSM项目中,向前端返回JSON数据是常见的需求,这通常涉及到Controller层的配置和JSON转换库的使用。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时...
总的来说,Spring MVC结合Jackson库,能够方便地处理JSON数据,实现与前端的高效通信。在实际项目中,要根据需求选择合适的Jackson版本,并进行适当的配置和注解使用,以保证JSON数据的正确交换。
"Spring-JSON"是关于Spring框架与JSON处理的相关知识点,主要涉及如何在Spring应用程序中集成和使用JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互。Spring框架提供...
在提供的压缩包文件`spring-boot-hello1`中,可能包含了上述示例的源代码,学习者可以通过分析和运行这些代码来加深对Spring Boot返回JSON数据的理解。实践是检验理论的最好方式,通过实际操作,你可以更好地掌握...
在本教程中,我们将探讨如何在SSH框架中实现通过访问网页返回JSON数据的功能,这对于现代Web应用程序的数据交互至关重要。 首先,让我们了解一下SSH框架的基本构成: 1. Struts:作为MVC(模型-视图-控制器)框架,...
总结来说,`jackson-mapper-asl-1.9.13.jar`和`jackson-core-asl-1.9.13.jar`是Spring MVC返回JSON数据所必需的,它们使得Spring MVC能够通过`@ResponseBody`注解将Java对象转换为JSON格式。通过正确配置和利用...
在这个项目中,我们可以预期后端服务会返回JSON格式的数据,前端则可以使用JavaScript或者其他的前端框架(如Angular、React或Vue.js)来解析并展示这些数据。 在SpringMVC项目中,通常会包含以下组件: 1. **...
`@RequestBody`用于将请求体中的JSON数据映射到方法参数,而`@ResponseBody`则将方法返回的对象转换为JSON并写入响应体。 例如: ```java import org.springframework.web.bind.annotation.*; @RestController ...
最近公司项目出现这样一个...在spring框架下,可以利用ResponseBodyAdvice接口,实现该接口则能够在声明了ResponseBody注解的controller返回json数据前,统一对json数据做处理,将资源地址的url统一替换为cdn资源url。
本篇文章将深入探讨如何利用Spring创建RESTful服务,并有效地处理JSON数据的接收与返回。 首先,我们需要了解Spring MVC,它是Spring框架的一部分,专门用于构建Web应用。Spring MVC通过DispatcherServlet作为入口...
4. **控制器方法的编写**:在 Spring MVC 的控制器类中,我们可以定义处理 HTTP 请求的方法,并使用 `@RequestBody` 和 `@ResponseBody` 注解来接收和返回 JSON 数据。例如: ```java @RequestMapping(value = "/...
在这个场景中,我们关注的是Spring如何处理JSON数据以及客户端如何处理JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,因为它的结构清晰且易于阅读和编写。 1. **...
`@RequestBody`注解用于将HTTP请求体中的JSON数据映射到方法参数,而`@ResponseBody`则指示Spring将方法返回值转化为HTTP响应体。 接下来,我们关注HTTPClient的使用。`testJsonClient`项目中,你可以使用Apache ...
在返回JSON数据的方法上添加`@ResponseBody`注解,表示该方法的返回值应该直接写入HTTP响应体,而不是作为一个视图进行渲染。 4. 使用注解进行对象映射: 你可以使用Jackson提供的注解来定制对象的序列化和反序列...
在现代Web应用中,经常需要与前端交互,返回JSON数据进行数据传输。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 标题"Spring+SpringMVC+MyBatis...
1. **创建Controller**:定义Spring MVC的控制器类,使用`@RequestMapping`注解映射URL,并使用`@ResponseBody`返回JSON数据。 2. **配置Jackson**:在Spring配置文件中启用Jackson并配置其属性,如日期格式化。 3. ...