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 16 Javascript
JQuery this 和 $(this) 的区别
Aug 23 Javascript
jQuery插件 tabBox实现代码
Feb 09 Javascript
jQuery Selector选择器小结
May 06 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
javascript不同类型数据之间的运算的转换方法
Feb 13 Javascript
JS Attribute属性操作详解
May 19 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
微信小程序 获取相册照片实例详解
Nov 16 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
Feb 08 Javascript
详解Javascript中new()到底做了些什么?
Mar 29 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
Aug 20 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 咖啡文化
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
JQuery之拖拽插件实现代码
2011/04/14 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
浅析vue-router原理
2018/10/19 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
Angular脚手架开发的实现步骤
2019/04/09 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
浅谈python中的占位符
2017/11/09 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
对Python 数组的切片操作详解
2018/07/02 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
金智子午JAVA面试题
2015/09/04 面试题
英语自我介绍演讲稿
2014/09/01 职场文书
2015年实习单位评语
2015/03/25 职场文书
活动主持人开场白
2015/05/28 职场文书
农村老人去世追悼词
2015/06/23 职场文书