<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Spring REST JSON 響應示例 > 原文: [https://howtodoinjava.com/spring-restful/spring-rest-hello-world-json-example/](https://howtodoinjava.com/spring-restful/spring-rest-hello-world-json-example/) 在 **Spring REST JSON 示例**中,我們將學習編寫能夠返回資源的 JSON 表示形式的[ RESTful Web 服務](https://howtodoinjava.com/restful-web-service/)。 我們將使用`MappingJackson2JsonView`將視圖解析為 JSON 正文。 > 閱讀更多: [Spring REST XML 教程](https://howtodoinjava.com/spring/spring-restful/spring-rest-hello-world-xml-example/) ## 1\. Spring REST JSON – `@ResponseBody`注解 此**首要技術**簡單易行。 我們只需要在應用程序的類路徑中包含 **jackson** 依賴項,spring 就會自動將`Jackson2JsonMessageConverter`類注冊到上下文中。 每當我們從 REST API 請求資源并提供 http 標頭`accept: application/json`時,我們都將取回資源的 json 表示形式。 #### 1.1. JSON 運行時依賴 `pom.xml` ```java <!-- Jackson JSON Processor --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.1</version> </dependency> ``` #### 1.2. `@ResponseBody`支持 > 這里`@RestController = @Controller + @ResponseBody` `EmployeeRESTController.java` ```java @RestController public class EmployeeRESTController { @RequestMapping(value = "/employees") public EmployeeListVO getAllEmployees() { EmployeeListVO employees = new EmployeeListVO(); EmployeeVO empOne = new EmployeeVO(1,"Lokesh","Gupta","howtodoinjava@gmail.com"); EmployeeVO empTwo = new EmployeeVO(2,"Amit","Singhal","asinghal@yahoo.com"); EmployeeVO empThree = new EmployeeVO(3,"Kirti","Mishra","kmishra@gmail.com"); employees.getEmployees().add(empOne); employees.getEmployees().add(empTwo); employees.getEmployees().add(empThree); return employees; } @RequestMapping(value = "/employees/{id}") public ResponseEntity<EmployeeVO> getEmployeeById (@PathVariable("id") int id) { if (id <= 3) { EmployeeVO employee = new EmployeeVO(1,"Lokesh","Gupta","howtodoinjava@gmail.com"); return new ResponseEntity<EmployeeVO>(employee, HttpStatus.OK); } return new ResponseEntity(HttpStatus.NOT_FOUND); } } ``` ## 2\. Spring REST JSON – `MappingJackson2JsonView`支持 這是**第二技術**。 `MappingJackson2JsonView`類還取決于類路徑中 **Jackson** JSON 處理器庫的存在,因此您無需添加任何其他內容。 完整的`pom.xml`看起來像這樣。 #### 2.1. Maven 依賴 `pom.xml` ```java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.howtodoinjava.demo</groupId> <artifactId>springrestexample</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>springrestexample Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- Spring MVC support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.4.RELEASE</version> </dependency> <!-- Jackson JSON Processor --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.1</version> </dependency> </dependencies> <build> <finalName>springrestexample</finalName> </build> </project> ``` #### 2.2. 添加`MappingJackson2JsonView`視圖 使用`MappingJackson2JsonView`類時,您將需要返回`MappingJackson2JsonView`類型的視圖名稱。 因此,您將需要更改兩個位置。 ##### 2.2.1. 控制器變更 您將需要從控制器方法返回視圖名稱。在我們的例子中,視圖名稱是`jsonTemplate`。 ```java package com.howtodoinjava.demo.controller; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import com.howtodoinjava.demo.model.EmployeeListVO; import com.howtodoinjava.demo.model.EmployeeVO; @Controller public class EmployeeRESTController { private EmployeeListVO getEmployeesCollection() { EmployeeListVO employees = new EmployeeListVO(); EmployeeVO empOne = new EmployeeVO(1,"Lokesh","Gupta","howtodoinjava@gmail.com"); EmployeeVO empTwo = new EmployeeVO(2,"Amit","Singhal","asinghal@yahoo.com"); EmployeeVO empThree = new EmployeeVO(3,"Kirti","Mishra","kmishra@gmail.com"); employees.getEmployees().add(empOne); employees.getEmployees().add(empTwo); employees.getEmployees().add(empThree); return employees; } @RequestMapping(value = "/employees") public String getAllEmployeesJSON(Model model) { model.addAttribute("employees", getEmployeesCollection()); return "jsonTemplate"; } } ``` ##### 2.2.2. 配置變更 您將需要將視圖名稱`jsonTemplate`配置為類型為`MappingJackson2JsonView`的 bean。 并且您將需要配置類型為`BeanNameViewResolver`的視圖解析器。 這樣,視圖名稱`jsonTemplate`將與`MappingJackson2JsonView`匹配,并且將已解析的 JSON 響應返回給客戶端。 `RESTConfiguration.java` ```java @Configuration public class RESTConfiguration { @Bean public View jsonTemplate() { MappingJackson2JsonView view = new MappingJackson2JsonView(); view.setPrettyPrint(true); return view; } @Bean public ViewResolver viewResolver() { return new BeanNameViewResolver(); } } ``` 與上述 java 配置等效的 XML 配置如下。 `spring-servlet.xml` ```java <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context/ http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.howtodoinjava.demo" /> <mvc:annotation-driven /> <!-- JSON Support --> <bean name="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"/> <bean name="jsonTemplate" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/> </beans> ``` **3\. Spring REST JSON 示例 – 演示** 現在,當您點擊 URL:`http://localhost:8080/springrestexample/employees`時,您將得到此結果。 ![Spring REST JSON Example](https://img.kancloud.cn/ea/5c/ea5c8905c35e27f4127b1e9da00fd0f4_952x522.jpg) Spring REST JSON 示例 ## 4\. Spring REST JSON 示例 – 項目結構 ![Spring REST JSON Example - Project Structure](https://img.kancloud.cn/2b/30/2b30d4d7cfa15a0950fe4295412937f1_421x480.jpg) Spring REST JSON 示例 – 項目結構 這就是帶有 spring mvc 的 **spring restful web 服務 json** 簡單示例的全部內容。 將您的問題留在我的評論中。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看