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 相关文章推荐
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 Javascript
javascript Event对象详解及使用示例
Nov 22 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
JS控制静态页面传递参数并获取参数应用
Aug 10 Javascript
Javascript的动态增加类的实现方法
Oct 20 Javascript
微信小程序 chooseImage选择图片或者拍照
Apr 07 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
js中apply和Math.max()函数的问题及区别介绍
Mar 27 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
koa-router路由参数和前端路由的结合详解
May 19 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 Javascript
微信小程序左滑动显示菜单功能的实现
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
Array of country list in PHP with Zend Framework
2011/10/17 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
python ElementTree 基本读操作示例
2009/04/09 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
Python基本语法经典教程
2016/03/11 Python
python数据结构之链表详解
2017/09/12 Python
django初始化数据库的实例
2018/05/27 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
行政助理岗位职责
2013/11/10 职场文书
空气环保标语
2014/06/12 职场文书
新教师培训心得体会
2014/09/02 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
垂直极限观后感
2015/06/08 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python