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 zTree树插件动态加载实例代码
May 11 jQuery
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 jQuery
jquery使用FormData实现异步上传文件
Oct 25 jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
一文快速了解JQuery中的AJAX
May 31 jQuery
jQuery实现判断滚动条滚动到document底部的方法分析
Aug 27 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 一个页面执行时间类代码
2010/03/05 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
python的Template使用指南
2014/09/11 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
Python面向对象类的继承实例详解
2018/06/27 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
pytest中文文档之编写断言
2019/09/12 Python
python 创建一维的0向量实例
2019/12/02 Python
追悼会子女答谢词
2014/01/28 职场文书
幼师自我鉴定
2014/02/01 职场文书
小学生元旦广播稿
2014/02/21 职场文书
学生操行评语大全
2014/04/24 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL