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 CSS修改学习第六章 拖拽
Feb 19 Javascript
jquery 页面全选框实践代码
Apr 02 Javascript
javascript页面渲染速度测试脚本分享
Apr 15 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
jQuery实现分隔条左右拖动功能
Nov 21 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
May 23 Javascript
vue源码学习之Object.defineProperty对象属性监听
May 30 Javascript
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
koa大型web项目中使用路由装饰器的方法示例
Apr 02 Javascript
JavaScript实现图片上传并预览并提交ajax
Sep 30 Javascript
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
微信小程序左滑动显示菜单功能的实现
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
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
php的ddos攻击解决方法
2015/01/08 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
JavaScript中的Document文档对象
2008/01/16 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
python实现定制交互式命令行的方法
2014/07/03 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
通过实例解析python描述符原理作用
2020/01/22 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
python如何查看网页代码
2020/06/07 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
技术学校毕业生求职信分享
2013/12/02 职场文书
安全生产专项整治方案
2014/05/06 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
求职简历自我评价范文
2015/03/10 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
小学英语听课心得体会
2016/01/14 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫