JS中对象与字符串的互相转换详解

yizhihongxing

下面是关于JS中对象与字符串的互相转换详解:

对象转字符串

在JS中,对象转成字符串通常使用JSON.stringify()函数,该函数将JavaScript对象转换为字符串,序列化过程中字符串中的对象、数组等会自动转成字符串。

以下是转换过程及示例代码:

基础用法

let obj = {name: 'Mike', age: 20, hobby: ['reading', 'music']};
let str = JSON.stringify(obj);
console.log(str);  // 输出: {"name":"Mike","age":20,"hobby":["reading","music"]}

转换过程中注意事项

在使用JSON.stringify函数时,注意以下几点:

  1. 循环引用对象会导致异常:循环引用对象指的是两个或多个对象相互引用,导致调用JSON.stringify()函数时,会引发异常。

  2. 函数、Symbol 等无法序列化成字符串:由于函数、Symbol等无法被序列化成字符串,因此在调用JSON.stringify函数时,会被忽略或转换为null。

示例代码:

const test1 = {a: 1, b: 'test'};
test1.c = test1;

console.log(JSON.stringify(test1)); // 输出: Uncaught TypeError: Converting circular structure to JSON
const test2 = {foo: function(){}, bar: Symbol()};
console.log(JSON.stringify(test2)); // 输出: {}

字符串转对象

在JS中,字符串转成对象通常使用JSON.parse()函数,该函数将字符串反序列化为JavaScript对象。

以下是转换过程及示例代码:

基础用法

let str = '{"name":"Mike","age":20,"hobby":["reading","music"]}';
let obj = JSON.parse(str);
console.log(obj);  // 输出: { name: 'Mike', age: 20, hobby: [ 'reading', 'music' ] }

转换过程中注意事项

使用JSON.parse()函数时,注意以下几点:

  1. 对象的键名必须为双引号包裹的字符串:“JSON 格式要求属性名必须加双引号”。

  2. 无效的 JSON 字符串会导致异常:如果输入的不是一个合法的 JSON 字符串,将会导致语法错误(syntax error)。

示例代码:

const obj1 = JSON.parse('{name:"Mike",age:20}'); // 错误的用法,输出:Uncaught SyntaxError: Unexpected token n in JSON at position 1

综上所述,以上就是JS中对象与字符串的互相转换的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS中对象与字符串的互相转换详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 基于JavaScript实现简单扫雷游戏

    下面是关于“基于 JavaScript 实现简单扫雷游戏”的完整攻略。 1. 设计思路 扫雷游戏实现的关键是地图的生成和点击事件的响应。其中,地图的生成可以通过二维数组来实现,对于每个格子可以用数字表示该格周围有多少个雷。而点击事件的响应则需要通过递归算法来实现,以展示周围未被揭开的格子。 总体设计思路如下: 1.1 地图生成 创建一个二维数组,用于存储每一…

    JavaScript 2023年6月11日
    00
  • javascript计时器编写过程与实现方法

    JavaScript计时器编写过程与实现方法 什么是JavaScript计时器 JavaScript计时器是一种用于控制时间和间隔函数调用的工具。通过计时器,我们可以创建定时器、循环定时器、超时定时器等,实现各种定时任务。 实现方法 1. 基本定时器 使用基本setTimeout函数来创建定时器,setTimeout函数包含两个参数,一个是需要调用的函数,另…

    JavaScript 2023年5月27日
    00
  • 实例教程 纯CSS3打造非常炫的加载动画效果

    通过本实例教程,我们将使用纯 CSS3 技术来构建一些极其酷炫的网站加载动画效果。在本教程中,我们将学习如何使用 CSS3 的关键帧动画和过渡方法来创建许多有趣的动画。 1. 准备工作 在开始编写动画之前,需要先准备好一个 HTML 文件。你可以在文件中添加一些模拟加载过程的标签来测试你的动画。一些可以用于这个目的的标签是:div,span,img 等。 2…

    JavaScript 2023年6月11日
    00
  • Three.js+React实现3D开放世界小游戏

    让我为您详细讲解“Three.js+React实现3D开放世界小游戏”的完整攻略。如下: 简介 Three.js是一个基于WebGL的JavaScript 3D库,提供了许多3D渲染的功能。React则是一个构建用户界面的JavaScript库,它可以使开发者更加方便地处理界面的状态和事件。 结合Three.js和React,我们可以实现一个3D开放世界小游…

    JavaScript 2023年6月11日
    00
  • JS实现动态生成html table表格的方法分析

    下面是详细的讲解: 简介 HTML table是用来展示网页数据的一种常用的视觉元素。通常,web程序员会手写HTML代码来创建一个table元素,但是对于动态生成表格,使用JavaScript来操作DOM可能会更加简单。本文将讲解如何通过JavaScript来实现动态生成HTML table表格。 实现过程 1. 生成表格内容的数据 我们需要先生成一个包含…

    JavaScript 2023年6月10日
    00
  • JS中的箭头函数

    在JavaScript中,箭头函数是一种简化的函数语法,它在ES6(ECMAScript 2015)引入。箭头函数的语法比传统的function表达式更简洁,同时还有一些特性,例如继承外部作用域的this值。 箭头函数的基本语法如下: (param1, param2, …, paramN) => { statements } (param1, pa…

    JavaScript 2023年5月11日
    00
  • javascript日期验证之输入日期大于等于当前日期

    针对“javascript日期验证之输入日期大于等于当前日期”这个问题,我们可以采用如下的步骤进行处理: 步骤一:获取用户输入的日期并与当前日期进行比较 我们可以使用Date对象来获取当前日期,然后将用户输入的日期与其进行比较,判断用户输入的日期是否大于等于当前日期。代码如下: // 获取当前日期 var currentDate = new Date(); …

    JavaScript 2023年6月10日
    00
  • JavaScript运行过程中的“预编译阶段”和“执行阶段”

    JavaScript代码的运行分为两个阶段:预编译阶段和执行阶段。在预编译阶段,JavaScript引擎会进行一些预处理操作,包括变量声明、函数声明、变量提升等。执行阶段则是按照预处理结果进行实际代码的执行。 预编译阶段 变量声明 在预编译阶段,JavaScript引擎会将代码中所有的变量声明存储到作用域中。例如: console.log(a); // un…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部