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 相关文章推荐
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
JAVASCRIPT style 中visibility和display之间的区别
Jan 22 Javascript
Javascript节点关系实例分析
May 15 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
javascript 日期相减-在线教程(附代码)
Aug 17 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 Javascript
Javascript作用域和作用域链原理解析
Mar 03 Javascript
JavaScript隐式类型转换代码实例
May 29 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
php截取视频指定帧为图片
2016/05/16 PHP
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
分享几道你可能遇到的python面试题
2017/07/24 Python
Python画图高斯分布的示例
2019/07/10 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
python 怎样进行内存管理
2020/11/10 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
双方协议书
2014/04/22 职场文书
学生期末评语大全
2014/04/30 职场文书
趣味运动会赞词
2015/07/22 职场文书
经销商会议开幕词
2016/03/04 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技