SpringBoot返回json和xml的示例代码

新建一个springboot项目,加入依赖jackson-dataformat-xml,pom文件代码如下?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

<?xml version="1.0" encoding="UTF-8"?>

<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/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

 

  <groupId>com.dalaoyang</groupId>

  <artifactId>springboot_xml</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

 

  <name>springboot_xml</name>

  <description>springboot_xml</description>

 

  <parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>1.5.9.RELEASE</version>

    <relativePath/> <!-- lookup parent from repository -->

  </parent>

 

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <java.version>1.8</java.version>

  </properties>

 

  <dependencies>

    <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

 

    <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-devtools</artifactId>

      <scope>runtime</scope>

    </dependency>

    <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-test</artifactId>

      <scope>test</scope>

    </dependency>

 

    <dependency>

      <groupId>com.fasterxml.jackson.dataformat</groupId>

      <artifactId>jackson-dataformat-xml</artifactId>

    </dependency>

  </dependencies>

 

  <build>

    <plugins>

      <plugin>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-maven-plugin</artifactId>

      </plugin>

    </plugins>

  </build>

</project>

启动类默认即可,没有做任何调整。

新建一个user类,代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

package com.dalaoyang.entity;

 

import javax.xml.bind.annotation.XmlElement;

import javax.xml.bind.annotation.XmlRootElement;

 

/**

 * @author dalaoyang

 * @Description

 * @project springboot_learn

 * @package com.dalaoyang.entity

 * @email yangyang@dalaoyang.cn

 * @date 2018/4/8

 */

@XmlRootElement

public class User {

 

  String userName;

  String userAge;

  String userAddress;

 

  public User(String userName, String userAge, String userAddress) {

    this.userName = userName;

    this.userAge = userAge;

    this.userAddress = userAddress;

  }

 

  @XmlElement

  public String getUserName() {

    return userName;

  }

 

  public void setUserName(String userName) {

    this.userName = userName;

  }

 

  @XmlElement

  public String getUserAge() {

    return userAge;

  }

 

  public void setUserAge(String userAge) {

    this.userAge = userAge;

  }

 

  @XmlElement

  public String getUserAddress() {

    return userAddress;

  }

 

  public void setUserAddress(String userAddress) {

    this.userAddress = userAddress;

  }

}

最后是controller,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

package com.dalaoyang.controller;

import com.dalaoyang.entity.User;

import org.springframework.http.MediaType;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

/**

 * @author dalaoyang

 * @Description

 * @project springboot_learn

 * @package com.dalaoyang.controller

 * @email yangyang@dalaoyang.cn

 * @date 2018/4/8

 */

@RestController

public class UserController {

 

  //http://localhost:8080/json

  @GetMapping(value = "/json",produces = MediaType.APPLICATION_JSON_VALUE)

  public User index(){

    User user = new User("dalaoyang", "26", "北京");

    return user;

  }

 

  //http://localhost:8080/xml

  @GetMapping(value = "/xml",produces = MediaType.APPLICATION_XML_VALUE)

  public User XML(){

    User user = new User("dalaoyang", "26", "北京");

    return user;

  }

}

到这里就可以启动项目了,访问http://localhost:8080/json

源码下载 :https://gitee.com/dalaoyang/springboot_learn

 

原文链接:https://www.jianshu.com/p/231b5ffa19b7

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中,我们可以使用Jackson库来实现XMLJSON之间的互转。以下是一个简单的示例: 首先需要在pom.xml文件中添加Jackson的依赖: ```xml <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> ``` 然后,在实体类中添加注解以指定XML元素名称: ```java @Data @AllArgsConstructor @NoArgsConstructor @XmlRootElement(name = "person") @XmlAccessorType(XmlAccessType.FIELD) public class Person { @XmlElement(name = "name") private String name; @XmlElement(name = "age") private int age; } ``` 在控制器中,我们可以使用`@RequestMapping`注解来定义请求处理程序方法,并使用`@RequestBody`和`@ResponseBody`注解来指定请求和响应的格式: ```java @RestController @RequestMapping("/api") public class ApiController { @PostMapping(value = "/xml-to-json", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_XML_VALUE) public Person xmlToJson(@RequestBody Person person) { return person; } @PostMapping(value = "/json-to-xml", produces = MediaType.APPLICATION_XML_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) public Person jsonToXml(@RequestBody Person person) { return person; } } ``` 在上面的代码中,`xmlToJson`方法将接收XML格式的请求体,并返回JSON格式的响应体。`jsonToXml`方法将接收JSON格式的请求体,并返回XML格式的响应体。 注意,在`@PostMapping`注解中,我们使用`produces`和`consumes`属性来指定请求和响应的格式。 现在,我们可以使用任何HTTP客户端来测试这些API了。例如,我们可以使用cURL命令发送一个XML格式的请求: ```bash curl -X POST \ http://localhost:8080/api/xml-to-json \ -H 'Content-Type: application/xml' \ -d '<person><name>John</name><age>30</age></person>' ``` 这将返回一个JSON格式的响应: ```json { "name": "John", "age": 30 } ``` 我们还可以使用cURL命令发送一个JSON格式的请求: ```bash curl -X POST \ http://localhost:8080/api/json-to-xml \ -H 'Content-Type: application/json' \ -d '{"name": "John", "age": 30}' ``` 这将返回一个XML格式的响应: ```xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <person> <name>John</name> <age>30</age> </person> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值