文档章节

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

火化十
 火化十
发布于 2016/04/19 14:33
字数 369
阅读 25
收藏 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
徐汇
程序员
【转】Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]

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

一堆BUG
2013/09/10
0
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
SpringMVC: HttpMessageConverter消息转换器机制

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

_Roger_
2015/11/22
0
0
判断JSON是否为空 (用spring mvc @ResponseBody 自动返回的json串 )

判断JSON是否为空 (用spring mvc @ResponseBody 自动返回的json串 ) 知识分类:EXTJS spring mvc json 记录时间: 20150708 简单描述:用json.length 属性长度来判断是否为空,在此过程中s...

AnyLiem
2015/07/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
3
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部