JS对象与json字符串相互转换实现方法示例

 更新时间:2018年06月14日 14:44:40   作者:Coding_Jia  
这篇文章主要介绍了JS对象与json字符串相互转换实现方法,结合实例形式分析了js对象与json字符串相互转换的相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了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字符串的互转了。

PS:这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans

更多关于JavaScript相关内容可查看本站专题:《JavaScript中json操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • js基于FileSaver.js 浏览器导出Excel文件的示例

    js基于FileSaver.js 浏览器导出Excel文件的示例

    本篇文章主要介绍了js基于FileSaver.js 浏览器导出Excel文件的示例,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • JS前端开发模拟虚拟dom转真实dom详解

    JS前端开发模拟虚拟dom转真实dom详解

    这篇文章主要为大家介绍了JS前端开发模拟虚拟dom转真实dom详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • JavaScript实现带并发限制的异步调度器

    JavaScript实现带并发限制的异步调度器

    这篇文章主要为大家详细介绍了如何基于JS实现一个带并发限制的异步调度器 Scheduler,保证同时运行的任务最多有N个,感兴趣的小伙伴可以了解下
    2024-03-03
  • Javascript多种浏览器兼容写法分析

    Javascript多种浏览器兼容写法分析

    随着以Firefox为代表的第三方浏览器的兴起,我们做的网站也不能再JUST IE了,如果把原来的一些javascript代码放到IE以外的浏览器的话,往往都不能正常运行或出错,所以这里介绍一下怎么改进我们的JS,让它能更加规范,更加具有兼容性。
    2008-09-09
  • 深入浅析JavaScript中的in关键字和for-in循环

    深入浅析JavaScript中的in关键字和for-in循环

    这篇文章主要介绍了JavaScript中的in关键字和for-in循环,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • js断点调试心得分享(必看篇)

    js断点调试心得分享(必看篇)

    下面小编就为大家分享一篇js断点调试心得,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • JS实现简单的键盘打字的效果

    JS实现简单的键盘打字的效果

    本文给大家分享的是使用javascript实现的简单的键盘打字效果,十分的简单实用,推荐给有需要的小伙伴参考下。
    2015-04-04
  • js实现简单广告小窗口

    js实现简单广告小窗口

    这篇文章主要为大家详细介绍了js实现简单广告小窗口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 如何在js代码中消灭for循环实例详解

    如何在js代码中消灭for循环实例详解

    for循环对大家来说都不陌生,下面这篇文章主要给大家介绍了关于如何在js代码中消灭for循环的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-07-07
  • javascript检测浏览器的缩放状态实现代码

    javascript检测浏览器的缩放状态实现代码

    这篇文章主要介绍了javascript检测浏览器的缩放状态实现代码,需要的朋友可以参考下
    2014-09-09

最新评论