JS对象与json字符串相互转换实现方法示例


Posted in Javascript onJune 14, 2018

本文实例讲述了JS对象与json字符串相互转换实现方法。分享给大家供大家参考,具体如下:

今天在面试的时候,面试官问到js对象与json字符串的互转问题,由于自己平时在用的时候没有在意,而且在工作中由于用的较少,没有答上来,所以今天特地查查资料复习一下, 巩固一下这方面的知识。

1、js对象转换成json字符串

在与后端进行交互时,有时需要把js对象转换成json字符串格式,这时我们需要去引用一下json2.js这个文件,然后调用JSON.stringify()方法。例如:

var data = new Object();
var jsonData = JSON.stringify(data);

2、json字符串转换成js对象

在工作中在ajax获取后端数据时,获取到的是json格式,有时就需要我们转换成js对象格式。在这里我们使用jQuery的一个$.parseJSON()方法将JSON格式的数据转换成js对象格式。例如:

var jsonData = $.getJSON();
var data = $.parseJSON(jsonData);

当然,还可以使用JSON.parse()方法,方法同上,但是有的浏览器对JSON.parse()的支持不是很理想,所以在使用时尽量使用.parseJSON()方法。.parseJSON()方法在浏览器支持时会返回执行JSON.parse()方法的结果,否则会返回类似执行eval()方法的结果,具体参考jQuery1.9.1得出:

parseJSON: function( data ) {
 // Attempt to parse using the native JSON parser first
 if ( window.JSON && window.JSON.parse ) {
  return window.JSON.parse( data );
 }
 if ( data === null ) {
  return data;
 }
 if ( typeof data === "string" ) {
  // Make sure leading/trailing whitespace is removed (IE can't handle it)
  data = jQuery.trim( data );
  if ( data ) {
   // Make sure the incoming data is actual JSON
   // Logic borrowed from http://json.org/json2.js
   if ( rvalidchars.test( data.replace( rvalidescape, "@" )
    .replace( rvalidtokens, "]" )
    .replace( rvalidbraces, "")) ) {
    return ( new Function( "return " + data ) )();
   }
  }
 }
 jQuery.error( "Invalid JSON: " + data );
},

这样就完成了js对象与JSON字符串的互转了。

Javascript 相关文章推荐
js getBoundingClientRect() 来获取页面元素的位置
Nov 25 Javascript
js 创建书签小工具之理论
Feb 25 Javascript
js改变img标签的src属性在IE下没反应的解决方法
Jul 23 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
May 19 Javascript
js禁止页面刷新与后退的方法
Jun 08 Javascript
Js+php实现异步拖拽上传文件
Jun 23 Javascript
js实现延时加载Flash的方法
Nov 26 Javascript
webpack实现热加载自动刷新的方法
Jul 30 Javascript
基于vue-video-player自定义播放器的方法
Mar 21 Javascript
详解Vscode中使用Eslint终极配置大全
Nov 08 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 Javascript
jquery实现广告上下滚动效果
Mar 04 jQuery
微信小程序左滑动显示菜单功能的实现
Jun 14 #Javascript
vue中如何让子组件修改父组件数据
Jun 14 #Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 #Javascript
MVVM框架下实现分页功能示例
Jun 14 #Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 #jQuery
React 组件间的通信示例
Jun 14 #Javascript
三分钟学会用ES7中的Async/Await进行异步编程
Jun 14 #Javascript
You might like
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
TensorFlow如何实现反向传播
2018/02/06 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
小学英语教师先进事迹
2014/05/28 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
教师学期个人总结
2015/02/11 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android