`

返回JSON数据格式及HttpMessageConverter

 
阅读更多

 

 使用HttpMessageConverter<T>将请求信息转换并绑定到处理方法的入参中

或将响应结果转换为对应类型的响应信息,Spring提供两种途径:

-使用@RequestBody/@ResponseBody对处理方法进行标注

-使用HttpEntity<T>/ResponseEntity<T>作为处理方法的入参或返回值

当控制器处理方法使用到@RequestBody/@ResponseBody或HttpEntity<T>/ResponseEntity<T>

spring首先会根据请求头或响应头的Accept属性选择匹配的HttpMessageConverter

进而根据参数类型或泛型类型过滤得到匹配的HttpMessageConverter

若找不到可用的HttpMessageConverter将报错

另:@RequestBody/@ResponseBody可用单独使用



 

 

 

 

别忘了添加jackson的jar包文件
 

package com.hous.crud.controller;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;

import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class JsonController {
	
	@RequestMapping("/json")
	public String json() {
		return "json";
	}
	
	@ResponseBody
	@RequestMapping("/testJson")
	public Map<String, String> testJson() {
		Map<String, String> map = new HashMap<>();
		map.put("id", UUID.randomUUID().toString());
		map.put("lastName", "shanshanbox.com");
		
		return map;
	}
	
	@ResponseBody
	@RequestMapping("/testHttpMessageConverter")
	public String testHttpMessageConverter(@RequestBody String body) {
		System.out.println(body);
		return "shanshanbox.com " + new Date();
	}
	
	@RequestMapping("/testResponseEntity")
	public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException {
		byte[] body = null;
		ServletContext servletContext = session.getServletContext();
		InputStream in = servletContext.getResourceAsStream("/files/abc.txt");
		body = new byte[in.available()];
		in.read(body);
		
		HttpHeaders headers = new HttpHeaders();
		headers.add("Content-Disposition", "attachment;filename=abc.txt");
		
		HttpStatus statusCode = HttpStatus.OK;
		
		ResponseEntity<byte[]> response = new ResponseEntity<>(body, headers, statusCode);
		return response;
	}
	
}

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test json</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/scripts/jquery.js"></script>
<script type="text/javascript">
$(function(){
	$('#json').click(function(){
		var url = this.href;
		var args = {};
		$.post(url, args, function(data){
			if(data) {
				var id = data.id;
				var lastName = data.lastName;
				alert(id + ' => ' + lastName);
			}
		});
		return false;
	});
});
</script>
</head>
<body>
<a href="testJson" id="json">get json</a>
<br/><br/>
<a href="testResponseEntity" id="json">get ResponseEntity</a>
<br/><br/>
<form action="testHttpMessageConverter" method="post" enctype="multipart/form-data">
	file:<input type="file" name="file"/>
	desc:<input type="text" name="desc"/>
	<input type="submit" value="submit"/>
</form>
<br/><br/>
</body>
</html>

 

  • 大小: 6 KB
  • 大小: 84.3 KB
  • 大小: 163.1 KB
分享到:
评论

相关推荐

    spring MVC 对 ResponseBody返回json数据进行脱敏处理

    在Spring MVC中,当控制器方法的返回值前加上`@ResponseBody`时,Spring会将返回的对象直接转换成HTTP响应体的Content,通常用于返回JSON或XML格式的数据。默认情况下,Spring MVC使用`HttpMessageConverter`来完成...

    SSM 关于向前台返回json数据问题

    在SSM项目中,向前端返回JSON数据是常见的需求,这通常涉及到Controller层的配置和JSON转换库的使用。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时...

    springMVC返回json数据需要的两个架包

    总结来说,`jackson-mapper-asl-1.9.13.jar`和`jackson-core-asl-1.9.13.jar`是Spring MVC返回JSON数据所必需的,它们使得Spring MVC能够通过`@ResponseBody`注解将Java对象转换为JSON格式。通过正确配置和利用...

    后台接口返回json数据所需jar包和配置

    在返回JSON数据的方法上添加`@ResponseBody`注解,表示该方法的返回值应该直接写入HTTP响应体,而不是作为一个视图进行渲染。 4. 使用注解进行对象映射: 你可以使用Jackson提供的注解来定制对象的序列化和反序列...

    Spring MVC返回JSON数据 用到的jar包

    在现代Web应用中,常常需要与前端进行异步通信,这就涉及到了JSON数据的交换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 在Spring MVC中,...

    springmvc返回json数据的jar包

    在Spring MVC框架中,返回JSON数据是常见的交互方式,它使得Web应用能够与客户端进行高效的数据交换,尤其在实现RESTful API时尤为重要。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读...

    springmvc操作json数据所需的jar包

    `@RequestBody`用于将请求体中的JSON数据映射到方法参数,而`@ResponseBody`则将方法返回的对象转换为JSON并写入响应体。 例如: ```java import org.springframework.web.bind.annotation.*; @RestController ...

    SSM笔记-SpringMVC的数据格式化 、数据校验、错误提示、错误信息国际化、返回json

    本笔记主要关注SpringMVC中的几个关键特性:数据格式化、数据校验、错误提示、错误信息国际化以及如何返回JSON数据。 1. 数据格式化: 在SpringMVC中,数据格式化是将用户输入的数据转换为业务对象的过程。这通常...

    SpringMVC-9 处理JSON数据

    本节我们将深入探讨Spring MVC处理JSON数据的具体实现和基本原理,以及如何利用HttpMessageConverter。 一、JSON数据处理基础 1. JSON结构:JSON由键值对组成,键用引号包围,值可以是字符串、数字、数组、对象、...

    Springmvc如何返回xml及json格式数据

    返回JSON格式数据的方式更为灵活。除了像返回XML那样指定`produces = "application/json"`,还可以直接返回实现了序列化接口的对象,如`java.io.Serializable`。Spring MVC会自动将对象转换为JSON字符串。 ```...

    SpringMVC中后台转换json格式

    确保所有依赖库都已引入,并正确配置SpringMVC,以实现后台与前台之间的顺利JSON数据交互。在实际项目中,还可能需要考虑JSON安全问题,例如防止XSS和CSRF攻击,以及优化性能,如使用GZIP压缩等。

    springmvc返回json用到的jar包

    在Spring MVC框架中,开发人员经常需要将服务器端的数据以JSON(JavaScript...确保正确配置和使用这些组件,将使你在Spring MVC应用中顺利地处理JSON数据传输。在实际项目中,还需要根据具体需求进行相应的调整和优化。

    Spring+SpringMVC+MyBatis返回json所需jar包

    在现代Web应用中,经常需要与前端交互,返回JSON数据进行数据传输。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 标题"Spring+SpringMVC+MyBatis...

    json数据包

    在现代Web应用中,Ajax常与JSON结合使用,因为JSON数据格式轻便、易于处理,适合于异步请求和响应。 例如,一个简单的jQuery AJAX请求示例,用于从服务器获取JSON数据: ```javascript $.ajax({ url: '/api/data'...

    SpringMVC中Json数据格式转换

    在编写Controller时,可以通过@RequestMapping来指定处理的URL和方法,并结合使用@ResponseBody来直接返回JSON数据。同时,在前端页面中,可以通过Ajax技术发起JSON数据的请求,并处理服务器响应的数据。 以下是一...

    jack-json包和配置,springmvc3.2及以下json格式支持

    在IT行业中,JSON(JavaScript...通过以上步骤,即使在Spring MVC 3.2及以下版本,我们也能成功地使用Jackson(jack-json)库处理JSON数据。这个解决方案对于那些无法升级到更高版本Spring的项目来说,无疑是一大福音。

    springMVC+json.zip_JSON_myeclipse_springmvc_数据传递

    - Controller处理业务逻辑后,可能需要返回JSON数据。通过`@ResponseBody`注解,SpringMVC会调用合适的`HttpMessageConverter`将Java对象转换为JSON字符串并返回给前端。 - 前端接收到响应,解析JSON数据并更新...

    SpringMVC JSON格式的读取和显示

    Spring MVC作为Spring框架的一部分,提供了一种优雅的方式来处理JSON数据的读取和显示。本篇文章将深入探讨如何在Spring MVC中实现JSON格式的数据处理,包括JSON的解析、转换以及使用注解进行配置。 首先,让我们...

    spring mvc(整合了json)

    在现代 Web 开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于前后端数据传输。将 Spring MVC 与 JSON 整合,可以实现高效、灵活的 Web 服务。 在 Spring MVC 中集成 JSON 的过程...

Global site tag (gtag.js) - Google Analytics