jQuery.parseJSON()函数详解


Posted in jQuery onFebruary 28, 2019

jQuery.parseJSON()函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象。

所谓”格式完好”,就是要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。

如果传入一个格式不”完好”的JSON字符串将抛出一个JS异常,例如:以下字符串均符合JSON格式,但它们不是格式完好的JSON字符串(因此会抛出异常):

// 以下均是字符串值,省略了两侧的引号,以便于展现内容
{id: 1} // id是属性名称,必须加双引号
{'id': 1} // id是属性名称,必须用双引号(不能用单引号)
{"name": 'CodePlayer'} // name属性的值是字符串,必须用双引号(不能用单引号)

JSON标准不允许字符串中出现”控制字符”,例如:一个Tab或换行符。

$.parseJSON('{"name": "Code\tPlayer\n"}'); // 多数情况下,它会抛出一个错误,因为JS解析器会将字符串中的\t或\n等转义直接视作字面值,起到Tab或换行的效果。
//正确写法应该如下(使用两个反斜杠,以免被JS解析器直接转义\t或\n):
$.parseJSON('{"name": "Code\\tPlayer\\n"}');

如果浏览器提供了一个本地的JSON.parse()方法,则jQuery将使用它来解析JSON字符串。

在jQuery 1.9之前(不含1.9):如果传入一个空字符串、null或undefined,该函数将返回null,而不是抛出一个错误,即使它不是有效的JSON字符串。

该函数属于全局的jQuery对象。

语法

jQuery 1.4.1 新增该静态函数。

jQuery.parseJSON( jsonString ) 参数
参数 描述 jsonString String类型需要解析并转为JS对象的JSON格式字符串。 返回值
jQuery.parseJSON()函数的返回值为任意类型,返回解析指定JSON字符串后的JavaScript表示。

示例&说明

以下是与jQuery.parseJSON()函数相关的jQuery示例代码,以演示jQuery.parseJSON()函数的具体用法:

var result1 = $.parseJSON( "{}" ); // 一个空的Object对象
var result2 = $.parseJSON( '{ "name": "CodePlayer", "age": 1 }' ); // 一个Object对象
alert( result2.name ); // CodePlayer
var result3 = $.parseJSON( '[ 1, true, "CodePlayer" ]' ); // 一个Object对象
alert( result3[2] ); // CodePlayer
var result4 = $.parseJSON( 'true' ); // 布尔值:true
var result5 = $.parseJSON( 'null' ); // null
var result6 = $.parseJSON( '0' ); // 整数:0
var result7 = $.parseJSON( '"专注于编程开发技术分享"' ); // 字符串值:专注于编程开发技术分享
var result8 = $.parseJSON( "\"专注于编程开发技术分享\"" ); // 字符串值:专注于编程开发技术分享
/* 以下均是无效的JSON字符串或非常规的参数值 */
var result9 = $.parseJSON( 100 ); // 1.9之前返回null;1.9+返回100
var result10 = $.parseJSON( 1.23 ); // 1.9之前返回null;1.9+返回1.23
var result11 = $.parseJSON( true ); // 1.9之前返回null;1.9+返回true
var result12 = $.parseJSON( null ); // 返回null
var result13 = $.parseJSON( "" ); // 1.9之前返回null;1.9+抛出错误
var result14 = $.parseJSON( undefined ); // 1.9之前返回null;1.9+抛出错误
var result15 = $.parseJSON( "undefined" ); // 抛出错误
var result16 = $.parseJSON( "12x;xx'无效的JSON字符串x4546" ); // 抛出错误
var result17 = $.parseJSON( '{ name: "CodePlayer", age: 1 }' ); // 抛出错误
var result18 = $.parseJSON( '{ "name": \'CodePlayer\', "age": 1 }' ); // 抛出错误
var result19 = $.parseJSON( '{ "name": "Code\tPlayer\n" }' ); // 抛出错误

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

jQuery 相关文章推荐
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
jQuery表单验证之密码确认
May 22 jQuery
bootstrap+jQuery实现的动态进度条功能示例
May 25 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
jQuery实现html双向绑定功能示例
Oct 09 jQuery
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
详解jQuery-each()方法
Mar 13 jQuery
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 jQuery
jquery实现吸顶导航效果
Jan 08 jQuery
ajax jquery实现页面某一个div的刷新效果
Mar 04 jQuery
jQuery each和js forEach用法比较
Feb 27 #jQuery
jQuery中each和js中forEach的区别分析
Feb 27 #jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 #jQuery
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 #jQuery
jQuery表单元素过滤选择器用法实例分析
Feb 20 #jQuery
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 #jQuery
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 #jQuery
You might like
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
QQ登录简单实现代码
2021/03/09 Javascript
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
初步探究Python程序的执行原理
2015/04/11 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
django定期执行任务(实例讲解)
2017/11/03 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Win8下python3.5.1安装教程
2020/07/29 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
python -v 报错问题的解决方法
2020/09/15 Python
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
校领导推荐信
2013/11/01 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android