如何从Spring Rest Controller仅获取JSON格式的响应体?
如何从Spring Rest Controller响应中提取纯JSON体
你的后端Spring Controller配置其实没毛病——你已经添加了@ResponseBody注解,还通过produces = "application/json"明确指定了响应格式,所以后端确实在返回标准的JSON数据。你现在看到的Response {_body: "{id: 001}", ...}是前端HTTP请求库返回的完整响应包装对象,里面包含了状态码、响应头和响应体等信息,要拿到纯JSON体,只需要根据你用的前端工具做对应的提取操作:
常见前端工具的提取方法
1. 原生Fetch API
Fetch返回的是一个Response对象,你需要调用它的json()方法来解析并提取响应体:
fetch('/userDetails') .then(response => { // 先检查请求是否成功 if (!response.ok) { throw new Error(`请求失败,状态码:${response.status}`); } return response.json(); // 解析JSON响应体 }) .then(userInfo => { console.log('拿到的纯JSON数据:', userInfo); // 这里就是{id: "001"}这样的JSON对象 }) .catch(error => { console.error('请求出错:', error); });
2. Axios
Axios会自动帮你解析JSON响应,直接访问response.data就能拿到纯JSON体:
axios.get('/userDetails') .then(response => { console.log('拿到的纯JSON数据:', response.data); }) .catch(error => { console.error('请求出错:', error); });
3. jQuery Ajax
只要在请求配置里指定dataType: 'json',成功回调里就能直接拿到解析后的JSON对象:
$.ajax({ url: '/userDetails', method: 'GET', dataType: 'json', success: function(userInfo) { console.log('拿到的纯JSON数据:', userInfo); }, error: function(xhr, status, error) { console.error('请求出错:', error); } });
额外说明
如果你用Postman或者curl这类工具测试接口,会直接看到纯JSON响应——因为这些工具会自动帮你提取并展示响应体。而前端代码里的HTTP库会把整个响应(包括状态、头、体)包装成对象,所以需要手动提取解析。
内容的提问来源于stack exchange,提问作者Steeve
相关产品推荐
相关产品推荐

