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使用unlock.js插件实现滑动解锁
Apr 04 jQuery
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
jQuery Dom元素操作技巧
Feb 04 jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
菊花转动的jquery加载动画效果
Aug 19 jQuery
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
jQuery实现图片下载代码
Jul 18 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
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
jquery.validate分组验证代码
2011/03/17 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
requireJS使用指南
2016/04/27 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
tornado 多进程模式解析
2018/01/15 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
python学习开发mock接口
2019/04/28 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python中time tzset()函数实例用法
2021/02/18 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
军训心得体会
2013/12/31 职场文书
初二物理教学反思
2014/01/29 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
学期评语大全
2014/04/30 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
西湖英语导游词
2015/02/06 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
golang实现浏览器导出excel文件功能
2022/03/25 Golang
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸