Springboot返回数据形式

本文介绍SpringBoot中JSON数据响应的两种方式:@ResponseBody注解返回Map自动转换为JSON及通过HttpServletResponse手动设置响应头并写入JSON字符串。探讨了在不同场景下选择合适的方法,以实现高效的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Springboot两种返回方式一种是@ResponseBody 一种是json返回

第一种,使用@ResponseBody注解,并返回map类型,则自动转成json格式

第二种方法是void,看一下service逻辑处理返回格式

HttpServletResponse帮助类 

package com.haidaipuhui.util;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

/** 
 * HttpServletResponse帮助类 
 */  
public class ResponseUtils {  
  
public static void renderJson(HttpServletResponse response, String text) {  
        // System.out.print(text);  
        render(response, "text/plain;charset=UTF-8", text);  
    }  
  
/** 
     * 发送内容。使用UTF-8编码。 
     *  
     * @param response 
     * @param contentType 
     * @param text 
     */  
    public static void render(HttpServletResponse response, String contentType, String text) {  
        response.setContentType(contentType);  
        response.setCharacterEncoding("utf-8");  
        response.setHeader("Pragma", "No-cache");  
        response.setHeader("Cache-Control", "no-cache");  
        response.setDateHeader("Expires", 0);  
        try {  
            response.getWriter().write(text);  
        } catch (IOException e) {  
        	e.printStackTrace();
        }  
    }  
} 

Result返回方法 

/**
	 * 在无注解支持的环境下返回到页面信息(调用即返回添加的信息)
	 * 
	 * @param code 状态
	 * @param t 结果集
	 * @param massage 说明信息
	 * @param response
	 */
	@SuppressWarnings({ "unchecked", "deprecation" })
	public static <T> void render(String code,T t ,String massage,HttpServletResponse response){
		Map<String, Object> result = new HashMap<String, Object>();
		if(t == null)
			t = (T) "";
		result.put(Commend.CODE, code);
		result.put(Commend.DATA,t);
		result.put(Commend.MESSAGE, massage);
 		ResponseUtils.renderJson(response, JsonUtil.obj2String(result));
	}
	private class Commend {
		public static final String CODE = "code";
		public static final String MESSAGE = "message";
		public static final String DATA = "data";
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值