首页 > 其他分享 >springboot返回json和xml

springboot返回json和xml

时间:2023-01-16 11:11:24浏览次数:52  
标签:xml userAddress springboot userAge json User public String

在项目中某些情况下接口需要返回的是xml数据或者json数据

1、在springboot项目加入依赖jackson-dataformat-xml

复制代码
<dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.1.2.RELEASE</version>
</dependency>            
复制代码

 

 2、在pojo层添加User类

复制代码
package com.example.demo.pojo;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * 被@XMLRootElement注解的类User,被描述为一个顶层的XML element
 */
@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;
    }

    /**
     * 该注解可以将被注解的(非静态)字段,或者被注解的get/set方法对应的字段映射为本地元素,也就是子元素。
     */
    @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;
    }
}
复制代码

3、在controller层添加UserController.java

复制代码
package com.example.demo.controller;

import com.example.demo.pojo.User;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    //http://localhost:8080/json
    @GetMapping(value = "/json",produces = MediaType.APPLICATION_JSON_VALUE)
    public User index(){
        User user = new User("echola", "22", "深圳");
        return user;
    }


    //http://localhost:8080/xml
    @GetMapping(value = "/xml",produces = MediaType.APPLICATION_XML_VALUE)
    public User XML(){
        User user = new User("echola", "22", "深圳");
        return user;
    }
}
复制代码

启动项目成功后,输入http://localhost:8080/json,页面上的json字符串:

  

 

输入http://localhost:8080/xml,页面上Xml格式:

  


 

注意:

  • @Controller和RestController的区别
  • @RestController注解相当于@ResponseBody+@Controller合在一起的作用。但是不能返回jsp,html页面,视图解析器InternalResourceViewSolver不起作用,无法解析jsp,html页面,只能返回Return中的内容
  • 若返回到指定的页面,需要@Controller配合视图解析器才可以。如返回Json,Xml或自定义的ModiaType内容到页面中,则需要在对应的方法上添加@ResponseBody
  • @RequestMapping和@GetMapping、@PostMapping(@PutMapping、@DeleteMapping)的区别
  • GetMapping用于处理Get类型的方法,@PostMapping用于处理Post类型的方法等
  • 传统的@requestMapping注释实现URI处理程序,拿么它应该是:
  @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
  • 新方法可以简化为:
   @GetMapping("/get/{id}")

   查看@GetMapping注释的源代码,我们可以看到它已经通过以下方式使用RequestMethod.Get进行了注释:

复制代码
@Target({ java.lang.annotation.ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = { RequestMethod.GET })
public @interface GetMapping {
   // abstract codes
}
复制代码

标签:xml,userAddress,springboot,userAge,json,User,public,String
From: https://www.cnblogs.com/kn-zheng/p/17054950.html

相关文章

  • springboot的定时任务
    1、定时任务的创建方式:基于注解@Schedule和@EnableScheduling(待完善。。。)2、@Schedule和@EnableScheduling适用于定时任务执行时间较短,并且比较单......
  • SpringBoot集成Thymeleaf
    1、引入依赖在maven项目的pom.xml中引入spingboot-boot-starter-thymeleaf依赖,同时为了解决Html严格校验报错的问题,增加nekohtml依赖<!--thymeleaf模板引擎-->......
  • Java对象转JSON动态设置字段
    需求User类:@DatapublicclassUser{ privateStringname; privateIntegerage;}序列化成JSON时,处理动态增加一个sex字段{ "name":"张三", "age":20, "sex......
  • springboot集成nacos 注册中心
     接上一篇集成配置中心,本文介绍注册中心,目录结构如下在nacosregister的pom.xml文件中添加引用<dependency><groupId>com.alibaba.cloud</groupId>......
  • [VS Code] 解决JSON文件注释提示Comments are not permitted in JSON.
    问题:打开JSON文件,发现注释中出现一堆问题提示,鼠标指示上去提示CommentsarenotpermittedinJSON.  解决:1.点击右下角的JSON. 2.输入json,找到jsonc并点击......
  • springboot反射 + 自定义注解
    利用反射调用方法获取bean寻找bean中指定的方法method(方法名可能匹配,参数类型不匹配,故还要分析参数类型)利用method.invoke方法Spring已经为此实现了完整的机制,......
  • springboot之json/yml配置文件的读取
    配置文件读取项目根目录的config目录下person.yml,文件夹如下person:name:qinjiangage:3happy:falsebirth:2000/01/01maps:{k1:v1,k2:v2}lis......
  • JSON
    1.概念:JavaScriptObjectNotation  JavaScript对象表示法   varp={"name":"zhangsan","age":23,"sex":"男"}    *json现在多用于储存和交换文本信息的语法......
  • springboot集成nacos 配置中心
    nacos本机需要安装好,未安装时,参考创建一个springbootmyapi项目,使用maven进行依赖包管理,创建两个模块nacosconfig(配置中心)、nacosregister,(注册中心),本方主......
  • 230115_50_SpringBoot入门
    如果类中属性比较多,通过@value赋值比较麻烦。可以通过yaml配置文件给实例赋值。新建Person类,通过@ConfigurationProperties注解可以实现配置文件注入,其中prefix可以指......