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 相关文章推荐
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
jQuery异步提交表单实例
May 30 jQuery
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
jQuery鼠标移动图片上实现放大效果
Jun 25 jQuery
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
jquery在启动页面时,自动加载数据的实例
Jan 22 jQuery
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
jQuery简单实现根据日期计算星期几的方法
Jan 09 jQuery
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
jQuery实现弹出层效果
Dec 10 jQuery
jQuery 实现扁平式小清新导航
Jul 07 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
php UTF8 文件的签名问题
2009/10/30 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
python模块导入的方法
2019/10/24 Python
python银行系统实现源码
2019/10/25 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
用CSS3画一个爱心
2021/04/27 HTML / CSS
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB