文档章节

SpringMVC对于已经是json字符串的输出

火化十
 火化十
发布于 2016/04/19 14:33
字数 369
阅读 27
收藏 0

SpringMVC常规情况下返回json需要把数据放入某一个对象中,然后转换成JSON格式

 有时候会有取到的值,本身已经是一个序列化后的JSON字符串了,意思已经是一个String了! 如果还是什么都按即有的办法做,Spring输出时会把这个纯字符串,当作JSON的Value来处理,会在返回的值外面加上引号如:

"{\"name\":\"dayun\", \"type\":\"C234\"}"


这时候前端JS就不认识这是个对象了,认为就是一个普通的字符串,你需要手动的转换下

var str="{\"name\":\"dayun\", \"type\":\"C234\"}"
var obj=JSON.parse(str);
obj.name

既然结果已经是现成的了,为什么还要再去转下,况且还是不对的!前端还更麻烦!


解决办法!

思路是直接将值写进response里!但要绕过SpringMVC自动对request的检查,也就跳过了在配置中 “

messageConverters” 的作用,不会去自动转一遍JSON了

@RequestMapping(value="/jefly",method=RequestMethod.GET)
public void beforeeee(@RequestBody(required=false)HttpServletRequest request,HttpServletResponse response) throws Exception{
	response.setContentType("application/json; charset=UTF-8");
	response.getWriter().print("{\"name\":\"dayun\", \"type\":\"C234\"}");
}
  1. 方法不需要返回值,因为是直接写进response

  2. 参数request前加上 @RequestBody(required=false) 表示不执行默认的mvc会写进去的设定


这样返回的结果就OK了,JS可以直接拿到的是一个对象

© 著作权归作者所有

共有 人打赏支持
火化十
粉丝 0
博文 1
码字总数 369
作品 0
徐汇
程序员
私信 提问
疯狂Spring Cloud连载(11)——Feign的编码器与解码器

本文节选自《疯狂Spring Cloud微服务架构实战》 京东购买地址:https://item.jd.com/12256011.html 当当网购买地址:http://product.dangdang.com/25201393.html Spring Cloud教学视频:htt...

杨大仙的程序空间
2017/10/23
0
4
Springmvc中@ResponseBody和@RequestBody的使用

springmvc中通过使用jackson配置来处理springmvc对json的支持,通过@ResponseBody来将后台对象转成json对象传给调用者,通过@RequestBody来将调用者传过来的json字符串转换为后台使用的对象具...

CsOH913
2016/01/17
115
0
【转】Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]

Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。 Spring使用AnnotationMethodHandlerAdapter的handleResponseBody方法, AnnotationMethodHandlerAdapter使用r......

一堆BUG
2013/09/10
0
0
SpringMVC: HttpMessageConverter消息转换器机制

1、概述 在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转 换,底层这种灵活的消息转换机制,就是Spring3.x中新引入的HttpMessage...

_Roger_
2015/11/22
0
0
Spring MVC 实践 - Component

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanqing280441589/article/details/51831979 标签 : Java与Web Converter Spring MVC的数据绑定并非没有任何...

菜鸟-翡青
2016/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 快捷键

快捷键图标。 官方的下载地址为:https://atlassianblog.wpengine.com/wp-content/uploads/2018/01/keyboard-shortcuts-infographics.pdf...

honeymose
30分钟前
0
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
33分钟前
1
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
5
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
4
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部