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 相关文章推荐
初学prototype,发个JS接受URL参数的代码
Sep 25 Javascript
js 单引号 传递方法
Jun 22 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
AspNet中使用JQuery上传插件Uploadify详解
May 20 Javascript
AngularJS学习笔记之ng-options指令
Jun 16 Javascript
js替换字符串中所有指定的字符(实现代码)
Aug 17 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
javascript遍历json对象的key和任意js对象属性实例
Mar 09 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
JavaScript学习笔记之惰性函数示例详解
Aug 27 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
js面向对象的写法
2016/02/19 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python中property和setter装饰器用法
2019/12/19 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
pytorch梯度剪裁方式
2020/02/04 Python
python内打印变量之%和f的实例
2020/02/19 Python
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
"序列点" 是什么
2016/07/29 面试题
法学专业应届生求职信
2013/10/16 职场文书
文艺晚会主持词
2014/03/24 职场文书
求职自我推荐信
2014/06/25 职场文书
报效祖国演讲稿
2014/09/15 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
小学英语教学随笔
2015/08/14 职场文书
安全学习心得体会范文
2016/01/18 职场文书