admin管理员组

文章数量:1794759

spring mvc实现Restful返回json格式数据

spring mvc实现Restful返回json格式数据

在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。

使用技术及环境:

  • Spring 3.2.2.RELEASE
  • Jackson 1.9.10
  • JDK 1.6
  • Eclipse 3.6
  • Maven 3
  • PS:在spring 3 中,要输出json数据,只需要添加Jackson 库到你的classpath。

    1、项目依赖

    spring和jackson的依赖:

  • <project xmlns="maven.apache/POM/4.0.0"
  • xmlns:xsi="www.w3/2001/XMLSchema-instance"
  • xsi:schemaLocation="maven.apache/POM/4.0.0
  • maven.apache/maven-v4_0_0.xsd">
  • <modelVersion>4.0.0</modelVersion>
  • <groupId>com.mkyongmon</groupId>
  • <artifactId>SpringMVC</artifactId>
  • <packaging>war</packaging>
  • <version>1.0-SNAPSHOT</version>
  • <name>SpringMVC Json Webapp</name>
  • <url>maven.apache</url>
  • <properties>
  • <spring.version>3.2.2.RELEASE</spring.version>
  • <jackson.version>1.9.10</jackson.version>
  • <jdk.version>1.6</jdk.version>
  • </properties>
  • <dependencies>
  • <!-- Spring 3 dependencies -->
  • <dependency>
  • <groupId>org.springframework</groupId>
  • <artifactId>spring-core</artifactId>
  • <version>${spring.version}</version>
  • </dependency>
  • <dependency>
  • <groupId>org.springframework</groupId>
  • <artifactId>spring-web</artifactId>
  • <version>${spring.version}</version>
  • </dependency>
  • <dependency>
  • <groupId>org.springframework</groupId>
  • <artifactId>spring-webmvc</artifactId>
  • <version>${spring.version}</version>
  • </dependency>
  • <!-- Jackson JSON Mapper -->
  • <dependency>
  • <groupId>org.codehaus.jackson</groupId>
  • <artifactId>jackson-mapper-asl</artifactId>
  • <version>${jackson.version}</version>
  • </dependency>
  • </dependencies>
  • <build>
  • <finalName>SpringMVC</finalName>
  • <plugins>
  • <plugin>
  • <groupId>org.apache.maven.plugins</groupId>
  • <artifactId>maven-eclipse-plugin</artifactId>
  • <version>2.9</version>
  • <configuration>
  • <downloadSources>true</downloadSources>
  • <downloadJavadocs>false</downloadJavadocs>
  • <wtpversion>2.0</wtpversion>
  • </configuration>
  • </plugin>
  • <plugin>
  • <groupId>org.apache.maven.plugins</groupId>
  • <artifactId>maven-compiler-plugin</artifactId>
  • <version>2.3.2</version>
  • <configuration>
  • <source>${jdk.version}</source>
  • <target>${jdk.version}</target>
  • </configuration>
  • </plugin>
  • </plugins>
  • </build>
  • </project>
  • 2、Model

    一个简单的JavaBean,稍后将被转换成json格式输出。

  • public class Shop {
  • String name;
  • String staffName[];
  • //getter and setter methods
  • }
  • 3、Controller

    添加@ResponseBody到返回值,我们看到:

  • Jackson 包已经在项目的 classpath
  • mvc:annotation-driven注解已经启用
  • 返回方法已经添加了@ResponseBody
  • spring会自动处理json的转换。

  • 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.mkyongmon.model.Shop;
  • @Controller
  • @RequestMapping("/kfc/brands")
  • public class JSONController {
  • @RequestMapping(value="{name}", method = RequestMethod.GET)
  • public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
  • Shop shop = new Shop();
  • shop.setName(name);
  • shop.setStaffName(new String[]{"mkyong1", "mkyong2"});
  • return shop;
  • }
  • }
  • 4、mvc:annotation-driven

    在你的spring配置文件中启用mvc:annotation-driven注解。

  • <beans xmlns="www.springframework/schema/beans"
  • xmlns:context="www.springframework/schema/context"
  • xmlns:mvc="www.springframework/schema/mvc"
  • xmlns:xsi="www.w3/2001/XMLSchema-instance"
  • xsi:schemaLocation="
  • www.springframework/schema/beans
  • www.springframework/schema/beans/spring-beans-3.0.xsd
  • www.springframework/schema/context
  • www.springframework/schema/context/spring-context-3.0.xsd
  • www.springframework/schema/mvc
  • www.springframework/schema/mvc/spring-mvc-3.0.xsd">
  • <context:component-scan base-package="com.mkyongmon.controller" />
  • <mvc:annotation-driven />
  • </beans>
  • 5、示例结果

    访问URL:localhost:8080/SpringMVC/rest/kfc/brands/kfc-kampar

    本文标签: 格式数据MVCspringjson