使用Spring-ResponseEntity响应json格式接口

博客介绍了使用Spring-ResponseEntity响应json格式数据很方便,给出了控制器端代码示例。若参数为Object,需定义标准返回格式并在控制器调用以返回json格式数据。

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

转自https://blog.csdn.net/loophome/article/details/86006812

使用Spring-ResponseEntity可以响应json格式的数据,非常方便。

控制器端代码:

@RequestMapping(value = "/channel/{id}", method = RequestMethod.GET)
public ResponseEntity<String> getChannelById() throws InterruptedException {
    return new ResponseEntity<>("success.", HttpStatus.OK);
}

以上结果输出:"success.",如果参数是一个Object呢?我们需要返回一个json格式。首先,需要定义一个标准返回格式

@JsonInclude(Include.NON_EMPTY)
public class ResponseEnvelope<T> {
	@Getter
	private Integer code;
	@Getter
	private String message;
	@Getter
	private T data;
    
	public ResponseEnvelope(Integer code, String message, T data) {
		this.code = code;
		this.message = message;
		this.data = data;
	}
}

在控制器这样调用:

@RequestMapping(value = "/channel/test", method = RequestMethod.GET)
public ResponseEntity<ResponseEnvelope<String >> getChannelById() throws InterruptedException {
    return new ResponseEntity<>(new DapResponseEnvelope<String >(200, "success.", "test"), HttpStatus.OK);
}
以上结果输出:{"code":200,"message":"success.","data":"test"}。如果data传入的也是Object,还会被格式化成json的数据。
Spring MVC中,处理JSON格式的请求和响应通常涉及以下几个步骤: 1. **启用JSON支持**:你需要配置Spring MVC支持JSON解析。在`applicationContext.xml` 或 `spring-boot-mvc.xml` 配置文件中添加Jackson JSON库的依赖,并启用它作为默认的HTTP消息转换器: ```xml <bean id="messageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <!-- 其他可能存在的转换器 --> <ref bean="messageConverter"/> </list> </property> </bean> ``` 2. **控制器处理**:创建一个`@RestController`注解的控制器,用于处理HTTP请求。你可以使用`@RequestBody`注解接收JSON格式的请求体,`@ResponseBody`将模型数据转换为JSON返回给客户端: ```java @RestController public class MyController { @PostMapping("/api/data") public ResponseEntity<MyDataResponse> sendData(@RequestBody DataRequest request) { // 实现业务逻辑并将结果封装到MyDataResponse对象 MyDataResponse response = processData(request); return new ResponseEntity<>(response, HttpStatus.OK); } private MyDataResponse processData(DataRequest request) { // 对接收到的request进行处理... } } ``` 其中,`DataRequest` 和 `MyDataResponse` 分别表示请求和响应的数据模型。 3. **JSON序列化和反序列化**:使用Spring的`@JsonComponent` 或 `@JsonProperty` 注解对对象的字段进行标记,方便Jackson自动序列化和反序列化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值