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

下面是关于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日

相关文章

  • JS组件Bootstrap Table表格行拖拽效果实现代码

    Bootstrap Table是一个基于Bootstrap框架的网页表格插件,它提供了丰富的功能和灵活性,适合用于展示和处理大量数据。在Bootstrap Table中,通过行拖拽可以实现多个行的交换和排序,能够提供更方便快捷的用户体验。下面是实现Bootstrap Table表格行拖拽效果的完整攻略。 1. 安装Bootstrap Table和相关插件 首…

    JavaScript 2023年5月19日
    00
  • JavaScript学习笔记之DOM基础操作实例小结

    JavaScript(JS)是一种广泛使用的脚本语言,常用于网页设计与动态交互效果实现。DOM(Document Object Model)文档对象模型是JS操作网页中HTML元素和样式的接口。掌握DOM基础操作是学习JS的重要一步,本文将为你介绍如何使用DOM对网页进行修改操作。 1. 加载HTML和JS 在HTML文件中引入JS,然后再通过documen…

    JavaScript 2023年6月10日
    00
  • 关于javascript中dataset的问题小结

    以下是关于JavaScript中dataset的问题的小结攻略: 什么是dataset dataset是一种HTML5 DOM API,在JavaScript中用于获取或设置HTML元素的自定义属性。这些自定义属性的名字都是以data-为前缀。 使用方法 获取dataset属性值 在JavaScript中,可以使用以下方式获取一个元素的dataset属性值:…

    JavaScript 2023年6月10日
    00
  • 基于JavaScript实现文件共享型网站

    下面将详细讲解“基于JavaScript实现文件共享型网站”的完整攻略。 前置条件 熟悉HTML、CSS和JavaScript基本知识; 熟悉Node.js开发环境和相关模块。 操作步骤 1. 创建文件夹 首先在本地文件夹中创建一个新的文件夹,命名为“file-sharing-website”。 2. 初始化项目 打开终端,进入到该文件夹中,执行以下命令: …

    JavaScript 2023年5月27日
    00
  • javascript 模拟坦克大战游戏(html5版)附源码下载

    让我来详细讲解一下“javascript 模拟坦克大战游戏(html5版)附源码下载”的完整攻略。首先,这个游戏是使用html5和javascript开发的,所以我们需要了解一些前端基础知识。 1. 技术要求 HTML5 Javascript CSS 2. 游戏介绍 这个游戏是一款双人对战的坦克大战游戏,支持键盘操作。游戏的地图分为草地、钢铁墙和河流三种地形…

    JavaScript 2023年6月10日
    00
  • 如何利用JS实现时间轴动画效果

    下面是详细的“如何利用JS实现时间轴动画效果”的攻略。 1. 确定实现目标 在开始编写JS代码前,首先需要明确实现的时间轴动画效果,例如时间轴的布局样式、时间点的标记形式、动画效果等。明确实现目标有助于后续的编码过程,避免出现不必要的错误。 2. 构建HTML结构 在HTML中构建出时间轴的基本结构,例如采用<ul>和<li>元素表示…

    JavaScript 2023年5月27日
    00
  • 谈谈我对JavaScript中typeof和instanceof的深入理解

    我将为你讲解“谈谈我对JavaScript中typeof和instanceof的深入理解”的完整攻略。首先我们要了解typeof和instanceof这两个操作符的意义和用法,然后结合示例进行说明。 typeof操作符 typeof是一个JavaScript内置的操作符,用于检测变量的数据类型。它返回一个字符串表示变量的数据类型。 语法 typeof 操作数…

    JavaScript 2023年6月10日
    00
  • JS DOM实现鼠标滑动图片效果

    JS DOM实现鼠标滑动图片效果可以分为以下几个步骤: 步骤一:HTML结构 首先,需要在HTML中编写需要实现滑动效果的图片。例如: <div class="image-box"> <img src="image1.jpg"> <img src="image2.jpg&quot…

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