JavaScript对象与JSON字符串互转方法详解

作者:闭包旅人时间:2026-10-22 15:26:10浏览:521

本文详细介绍JavaScript对象与JSON字符串相互转换的两种主要方式。首先讲解使用JSON.stringify()将JS对象转为JSON字符串,其次介绍利用jQuery的$.parseJSON()及原生JSON.parse()将JSON字符串还原为JS对象的方法,并对比了不同浏览器对原生解析方法的支持情况及兼容性建议。

本文详细解析JavaScript对象与JSON字符串之间相互转换的具体实现方式,旨在提供清晰的操作指南供参考。

在面试场景中,面试官常会询问JS对象与JSON字符串互转的问题。由于日常开发中此类操作频率较低,容易忽视细节,因此有必要通过查阅资料重新梳理并巩固这一知识点。

JS对象转换为JSON字符串

一、JS对象转换为JSON字符串

在前端与后端交互过程中,常需将JS对象序列化为JSON字符串格式。此时通常需要引入json2.js文件,并调用JSON.stringify()方法完成转换。具体示例如下:


var data = new Object();
var jsonData = JSON.stringify(data);

JSON字符串转换为JS对象

二、JSON字符串转换为JS对象

在使用Ajax获取后端返回的JSON格式数据时,往往需要将其反序列化为JS对象以便处理。此处可使用jQuery提供的$.parseJSON()方法,将JSON格式数据转换为JS对象。示例代码如下:


var jsonData = $.getJSON();
var data = $.parseJSON(jsonData);

此外,还可以使用JSON.parse()方法,其用法与前述类似。但需注意,部分浏览器对JSON.parse()的支持存在差异,因此建议优先使用.parseJSON()方法以确保兼容性。根据jQuery 1.9.1的实现逻辑,.parseJSON()方法在浏览器支持原生解析时会返回执行JSON.parse()方法的结果;若不支持,则返回类似执行eval()方法的结果。具体实现可参考相关源码:


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字符串之间的双向转换。

补充推荐:以下提供几款实用的在线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程序设计工作有所帮助。

作者最新文章