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 相关文章推荐
Javascript模板技术
Apr 27 Javascript
基本jquery的控制tabs打开的数量的代码
Oct 17 Javascript
更换select下拉菜单背景样式的实现代码
Dec 20 Javascript
JavaScript中字符串拼接的基本方法
Jul 07 Javascript
JS实现可关闭的对联广告效果代码
Sep 14 Javascript
jQuery Mobile页面返回不需要重新get
Apr 26 Javascript
Node.js+Express配置入门教程
May 19 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
Sep 08 Javascript
jQuery常见的选择器及用法介绍
Dec 20 Javascript
vue组件内部引入外部js文件的方法
Jan 18 Javascript
JavaScript 监听组合按键思路及代码实现
Jul 28 Javascript
js实现幻灯片轮播图
Aug 14 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
第九节--绑定
2006/11/16 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
php生成随机数的三种方法
2014/09/10 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python tornado上传文件的功能
2020/03/26 Python
Python json读写方式和字典相互转化
2020/04/18 Python
python支持多继承吗
2020/06/19 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
园林系毕业生求职信
2014/06/23 职场文书
2015年小学生暑假总结
2015/07/13 职场文书