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 Chart 插件整理
Jun 18 Javascript
JQuery 选择器、过滤器介绍
Feb 14 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
Jan 13 Javascript
浅谈JavaScript数据类型及转换
Feb 28 Javascript
ASP.NET jquery ajax传递参数的实例
Nov 02 Javascript
jQuery Ajax请求后台数据并在前台接收
Dec 10 Javascript
JS ES6多行字符串与连接字符串的表示方法
Apr 26 Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
浅谈Webpack 是如何加载模块的
May 24 Javascript
js打开word文档预览操作示例【不是下载】
May 23 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 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
PHP中动态显示签名和ip原理
2007/03/28 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
js实现浏览本地文件并显示扩展名的方法
2015/08/17 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
高中运动会广播稿
2014/01/21 职场文书
冬季施工防火方案
2014/05/17 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
婚礼父母致辞
2015/07/28 职场文书
会计岗位工作总结
2015/08/12 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
Python中三种花式打印的示例详解
2022/03/19 Python