springboot返回json和xml

在项目中某些情况下接口需要返回的是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注解相当于@[email protected]合在一起的作用。但是不能返回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
}

原文地址:https://www.cnblogs.com/echola/p/10955817.html

时间: 2024-10-14 04:59:07

springboot返回json和xml的相关文章

Ajax调用返回json,xml数据类型(0517--pm)

一.返回Json型数据: 1.主页面 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <met

调用AJAX返回JSON、XML数据类型

1.调用AJAX返回JSON数据 用下拉列表显示Nation表民族名称 主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <he

PHP返回JSON和XML类

1 <?php 2 class Reponse{ 3 //private $result = array('code'=null,'message'=null,'data'=>null); 4 /** 5 * @desc 返回JSON格式 6 * @param int $code 7 * @param string $message 8 * @param array $data 9 * return string 10 */ 11 public static function json($co

springCloud--补充:返回json与xml格式

今天发现@RestController注解返回的默认格式成了xml,现在还没有找到原因,使用如下可以如常的返回json格式: @RestController public class UserController {     @Autowired     private UserDao userDao;     @GetMapping(value = "/{id}", produces = { "application/json;charset=UTF-8" })

Jquery 调用.net WebService 返回Json、XML方法

由于项目需要,使用前端.手机客户端调用ASP.NET的Webservice来获取信息.所以这段时间重温一下Jquery与Web Serivce,过程中碰到不少问题,也有不少的收获. Service代码 [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string myMethod(string para) { return "Hi," + para

SpringBoot 返回json 字符串(jackson 及 fast json)

一.jackson 1.Controller 类加注解@RestController 这个注解相当于@Controller 这个注解加 @ResponseBody 2.springBoot 默认使用 jackson 来把java 对象转化为json 字符串. 二.fast json 1.pom 文件加入fast json 依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson&l

Struts2返回json数据xml中配置

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <!-- 登陆配置

springboot返回json

1.springboot默认基础json转换器为Jackson: 2.直接返回对象就是json了: 如果需要使用别的json转换器如:fastjson 1.引入fastjson包 2.AppAplication继承WebMvcConfigurerAdapter重写方法configuerMessageConverters方法 在里面添加:FastJsonHttpMessageConverter 原文地址:https://www.cnblogs.com/hy87/p/9059870.html

SpringBoot返回json格式到浏览器上,出现乱码问题

在对应的Controller上的requestMapping中添加: @RestController@EnableAutoConfiguration@RequestMapping(value = "/", produces = "application/json; charset=utf-8")public class hello { @RequestMapping("/") public String home() {   return &qu