博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于SpringMVC返回数据带斜杠字符串问题之解决方案
阅读量:5049 次
发布时间:2019-06-12

本文共 1487 字,大约阅读时间需要 4 分钟。

常用SpringMVC的基本都知道,@RestController和@ResponseBody加上了都会返回json数据。它们的区别主要是注解方面,一个是类级别的一个是方法级别。

之前我们比较喜欢使用@ResponseBody,后来觉得重复性太多了,特别是使用swagger以后,一个方法上面关注解就上了4到5层,为了减少这些繁杂的过程,我们就采取简洁策略,因为都是基于前后端分离开发,前端展示也不打算使用诸如jsp、freemarke、volocity等模板语言。直接上手html,当然主要是以ajax的方式进行交互。

先列举这么几个情况?通常情况下,类上面有对应的RestController注解或者是你的类上是@Controller注解,并在每个方法上面加上@ResponseBody。正常是应该返回JSON数据的。通过POSTMAN测试或者Jmeter。

关于@RestController和@ResponseBody源码解析可以参考我的这篇文章:

当然有的时候没有返回的话,根据你使用而定比如使用FastJSON却没有返回对应的JSON数据,可通过在SpringMVC配置文件加上如下内容解决:

text/html;charset=UTF-8
application/json;charset=UTF-8

 

如果是jackjson,可通过在SpringMVC的配置文件加上如下内容解决:

 

当然了,如果还出现这种情况的话,通常情况下可将返回值定为JSONObject或Object,而不是String,因为通过String的话,还需要调用JSONObject.toString()方法进进行转换。有的时候转换不起作用。

当然了,即便出现这种情况也可以转换为json,比如使用jQuery的ajax方法交互,可通过eval进行转义或者JSON.parse,将普通字符串转为JSON格式字符串。另外还有一个要简单说明下,就是如果是返回中文乱码问题,注意要在对应的方法上加上这么一句produces="application/json;charset=utf-8",即可解决乱码问题

如果是安卓,记得有一次我遇到这种情况,也是给他提供接口的时候,突然返回是带斜杠的字符串。他是通过replace方法进行替换解决的。不过个人建议,如果遇到这种情况的话,可以使用返回值为JSONObject这样可以避免出现这种情况。

 

转载于:https://www.cnblogs.com/youcong/p/9347675.html

你可能感兴趣的文章
base642photo
查看>>
二分查找和数组合并
查看>>
【Java例题】5.5 两个字符串中最长公共子串
查看>>
python数据类型二
查看>>
Python-字典
查看>>
Topological Sor-207. Course Schedule
查看>>
理解使用 JavaScript 构建 Metro 应用
查看>>
BZOJ 3676: [Apio2014]回文串
查看>>
在C#4.0中使用NPLOT
查看>>
图像增强
查看>>
python基础
查看>>
ServletContext对象
查看>>
HTML表格及网页编辑
查看>>
mysql事务
查看>>
[最大环+缩点+BFS]codeforces Round 95 Div2
查看>>
asp.net 获取服务器及客户端的相关信息
查看>>
Python基础01
查看>>
Bit,Byte,WORD,DWORD区别和联系
查看>>
英语中咖啡表示
查看>>
kali更新源
查看>>