对于后台返回json数据处理:总结一些常用的方法 - Web前端
作者:98wpeu发布时间:2026-09-05分类:网页前端技术浏览:2

近期在忙于官网的改版,尤其是对于数据优化,自己也记下项目笔记,对于后台返回json数据处理:总结一些常用的方法。今天上午抽时间分享出来,希望能够帮助到大家。
转义和反转义
JS中有很多函数可以用来转义和反转义,如escape()和unescape()、encodeURI()和decodeURI()、encodeURIComponent()和decodeURIComponent()等。
1、escape()和unescape()
escape()函数将参数转换为字符串,并以url编码的格式进行编码。在这种格式中,所有空格、标点、重音符号以及其他非ASCII字符都要%xx十六进制序列码代替。如空格的返回时%20。
escape(param);
参数param是转换为字符串并以URL编码格式进行编码的表达式。
unescape()功能恰好相反,将URL编码格式字符串进行解码返回字符串。
unescape(param);
例如:
escape("Hello{[World]}");
转义结果为:Hello%7B%5BWorld%5D%7D
unescape("Hello%7B%5BWorld%5D%7D")
返回结果:Hello{[World]}缺点:escape()和unescape()只能处理ASCII字符,不推荐使用这两个方法进行转义、解码。
2、encodeURI()和decodeURI()
encodeURI()函数将文本字符串编码为一个有效的统一资源标识符(URI)。而decodeURI()将URI解码为一般字符串。
encodeURI(param);
param是一个将被编码的字符串。
decodeURI(param);
例如:
encodeURI("Hellow{[World]}")
转义结果为:Hello%7B%5BWorld%5D%7D
decodeURI("Hello%7B%5BWorld%5D%7D")
返回结果:Hello{[World]}。注意:
encodeURI()函数单靠自身不能形成http get请求或者post请求,因为&、+、=都不会被转码,这几个字符在GET或POST请求中被作为特殊字符对待。
3、encodeURIComponent()和decodeURIComponent()
这两个函数也是用来编码和解码。
decodeURIComponent(URIstring)
URIString为一个已编码的URI组件。
encodeURIComponent(URIString) var aa='哈哈+呵呵'; encodeURIt(aa) //'哈哈 呵呵' encodeURIComponent(aa) //'哈哈+呵呵'
encodeURIComponent()可以转换除英文字母、数字、-、_、.、!、~、*、'、(、)外的所有字符。
前端处理后端返回带/反斜杠转义符的JSON数据
一般我们常用办法是限eval()方法运行一次,然后在用JSON.parse()进行转换。例如这是我项目的代码片段。
xhr.onreadystatechange = function() {
var data = eval('('+xhr.responsetext+')'),
dataResult = jsON.parse(data.body);
//console.log(dataResult);
if(data){
if(xhr.readyState && xhr.status == 200) {
...
}
else {
...
}
}
};对于结果进行了二次转换,当然有时候只需要执行JSON.parse(),看后台给你的数据格式了。
这里顺便普及下eval()和JSON.parse()的用法。
eval()定义和用法
eval() 函数可计算某个字符串,并执行其中的的 javascript 代码。
eval()语法
eval(string)
| 参数 | 描述 |
|---|---|
| string | 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 |
eval()返回值
通过计算 string 得到的值(如果有的话)。
eval()说明
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 Evalerror 异常。
eval()抛出
如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。
如果非法调用 eval(),则抛出 EvalError 异常。
如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。
JSON.parse()
JSON 通常用于与服务端交换数据。
在接收服务器数据时一般是字符串。
我们可以使用 JSON.parse() 方法将数据转换为 javascript 对象。
语法
JSON.parse(text[, reviver])
参数说明:
text:必需, 一个有效的 JSON 字符串。
reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
JSON 解析实例
例如我们从服务器接收了以下数据:
{ "name":"runoob", "alexa":10000, "site":"www.jiangweishan.com" }我们使用 JSON.parse() 方法处理以上数据,将其转换为 javaScript 对象:
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.jiangweishan.com" }');注意:这里一定要注释单引号和数组的组合形式,新手很容易会出问题,就会报错。
总结
目前就分享这么多,要干活了,时间有限,后期继续在进行研究。
- 上一篇:Vue3开发:简单实例说明路由VueRouter4的应用 - Web前端
- 下一篇:已经是最后一篇了
相关推荐
- Vue3开发:简单实例说明路由VueRouter4的应用 - Web前端
- 前端开发:使用React和Tailwind CSS构建网站 - Web前端
- 分享一个用clip-path工具实现的小应用:对图形进行剪切处理 - Web前端
- 原生JavaScript开发TIPS:继承的三种方法 - Web前端
- 使用vue或者react项目,启动时如何修复这样的报错:Error: Cannot find module 'E:\..........' - Web前端
- Web前端带您全方位了解网页开发优化工具:Lighthouse - Web前端
- CSS3动画:通过Animation实现简单的手指点击动画 - Web前端
- Chrome 刚刚添加了这些重要的新安全和隐私功能 - Web前端
- CSS3应用:画个东京奥运会五环图形效果 - Web前端
- HTML5和CSS3应用:绘制小水缸,实现动画效果 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 9jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


