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日

相关文章

  • 从vue-router看前端路由的两种实现

    从vue-router看前端路由的两种实现 前端路由是现代前端开发中非常重要的一部分,它实现了单页应用(SPA)的核心功能,目前主流的前端框架如Angular、React、Vue等都实现了自己的路由组件。其中,Vue框架中自带的路由组件vue-router是应用广泛的一种。在vue-router的实现中,涉及到两种不同的前端路由实现方式。下面我们分别来讲解一…

    JavaScript 2023年6月11日
    00
  • javascript算法之数组反转

    我将为你详细讲解“javascript算法之数组反转”的完整攻略。首先需要了解的是什么是数组反转。数组反转是指将一个数组中的元素顺序颠倒,即数组的第一个元素变为最后一个,第二个元素变为倒数第二个,以此类推。 接下来我将为你提供具体的步骤: 创建一个数组 在开始反转数组之前,我们需要先创建一个数组。可以使用以下方法创建一个数组变量: let arr = [1,…

    JavaScript 2023年5月27日
    00
  • JS处理数据四舍五入(tofixed与round的区别详解)

    JS处理数据四舍五入(toFixed与round的区别详解) 在JavaScript中,处理数字的操作经常会用到四舍五入,而通过使用toFixed和round方法可以实现对数字的四舍五入操作。但是它们的实现方式以及得出的结果有些许不同,下面就详细介绍一下两者的区别。 toFixed方法 toFixed()方法是一个对象方法,它会把数字转换为字符串,并且指定小…

    JavaScript 2023年5月28日
    00
  • AngularJS 单元测试(一)详解

    下面是对于“AngularJS 单元测试(一)详解”的完整攻略: 什么是单元测试 单元测试是软件开发流程中的一种测试方法,它可以对一个软件系统、组件或单元进行测试,以确认其是否满足设计目标和要求。它可以提供反馈和验证设计过程的正确性。 单元测试的主要目的是在开发过程中检测代码的正确性,及时发现并解决错误。相比手动测试,单元测试可以更早地检测到错误,提高开发效…

    JavaScript 2023年6月10日
    00
  • 微信JSSDK调用微信扫一扫功能的方法

    针对您提供的话题,我来详细讲解一下微信JSSDK调用微信扫一扫功能的方法的完整攻略。 一、前置准备 要完成微信JSSDK调用微信扫一扫功能,需要提前完成以下几个步骤: 申请微信公众号。在微信公众平台上申请并审核通过公众号。 拥有有效的微信公众号开发者身份。在微信公众平台上注册并审核通过开发者账号,并进行开发者认证。 获得合法的微信JS-SDK权限。即在微信公…

    JavaScript 2023年6月10日
    00
  • JavaScript与DOM组合动态创建表格实例

    下面我来详细讲解如何使用JavaScript与DOM组合动态创建表格实例。 简介 在Web开发中,表格是数据展示的常用形式之一,但是在页面中手动编写表格代码比较繁琐,因此我们可以使用JavaScript与DOM结合创建表格。 创建表格的步骤 1.创建表格元素 首先需要使用JavaScript创建表格元素,可以使用document.createElement方…

    JavaScript 2023年6月10日
    00
  • js中cookie的添加、取值、删除示例代码

    下面是JS中操作Cookie的完整攻略,包括添加、取值、删除示例代码: 添加Cookie 在JS中添加Cookie,我们可以利用document.cookie来设置Cookie值。下面是添加Cookie的示例代码: function setCookie(cname, cvalue, exdays) { let d = new Date(); d.setTim…

    JavaScript 2023年6月11日
    00
  • JS动态加载当前时间的方法

    JS动态加载当前时间的方法可以通过以下步骤实现: 1. 创建一个容器元素 首先,我们需要在HTML文件中创建一个容器元素用于显示当前时间。可以选择使用div、p、span等标签。 <div id="current-time"></div> 2. 获取当前时间 接着,我们需要使用JS代码获取当前时间。可以使用Date…

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