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日

相关文章

  • JavaScript判断两个值相等的方法详解

    下面是关于“JavaScript判断两个值相等的方法详解”的完整攻略: JavaScript判断两个值相等的方法详解 在JavaScript中,判断两个值是否相等有多种方法,这里我们分别介绍全等、双等和Object.is这三种方法。 全等(===) 全等(===)用于判断两个值是否类型和值都相等,示例如下: console.log(1 === 1); // …

    JavaScript 2023年5月28日
    00
  • javascript prototype的深度探索不是原型继承那么简单

    下面我将为你详细讲解“Javascript Prototype的深度探索不是原型继承那么简单”的完整攻略。 一、了解prototype 在Javascript中,每个对象都有一个prototype属性,这个属性指向了它所对应的构造函数的原型对象(也称为原型),也是实现JavaScript中原型继承的关键。 示例代码: function Person(name…

    JavaScript 2023年6月10日
    00
  • 使用bootstrap validator的remote验证代码经验分享(推荐)

    这里是使用Bootstrap Validator的Remote验证代码经验分享攻略。 什么是Remote验证 Bootstrap Validator提供了Remote验证来检查输入是否已经存在于数据库中,而不是使用静态的规则来验证。 在其最基本的形式中,Remote验证使用AJAX请求来检查输入是否已经存在于数据库中,并根据结果来反馈验证的状态。 开始使用R…

    JavaScript 2023年6月10日
    00
  • JavaScript中常用的几种字符串方法汇总(新手必看)

    JavaScript中常用的几种字符串方法汇总(新手必看) 在JavaScript中,字符串是非常常见的数据类型。对字符串操作可以让我们方便地进行一些逻辑处理。下面总结了常用的一些字符串方法,希望对初学者有所帮助。 1. length属性 length属性可以获取字符串的长度。 const str = "Hello World!"; co…

    JavaScript 2023年5月28日
    00
  • JavaScript 动态三角函数实例详解

    JavaScript 动态三角函数实例详解 引言 本文将详细讲解如何使用JavaScript实现动态三角函数。三角函数是数学中的重要概念,而动态三角函数则是将三角函数与图形可视化相结合的效果,将这种效果实现在Web应用程序中,离不开JavaScript的帮助。 必要的准备工作 在本例中,我们将使用HTML、CSS和JavaScript来实现三角函数。打开你的…

    JavaScript 2023年5月27日
    00
  • Java实战之城市多音字处理

    Java实战之城市多音字处理,可以通过以下步骤完成: 1. 构建多音字字典 首先,我们要构建一个多音字字典,将城市名中的多音字进行转换。常见的多音字有:重、长、佛、青、才等。本例中以“重庆”为例,其多音字为“重”,需进行转换。我们可以在程序中使用HashMap或者Trie树等数据结构,将多音字与其所有发音对应起来,为后续的处理做准备。 示例代码: Map&l…

    JavaScript 2023年5月28日
    00
  • JavaScript实现图片上传并预览并提交ajax

    JavaScript实现图片上传并预览并提交ajax,涉及到以下几个步骤: 通过input元素选择图片文件; 使用FileReader API将图片文件转换为base64格式的数据,并将其显示在页面上; 将base64格式的图片数据发送到服务器端,并接收服务器端的响应。 下面是详细的攻略: 步骤一:选择图片文件 使用HTML中的<input>元素…

    JavaScript 2023年6月11日
    00
  • js数组去重的11种方法

    下面是详细讲解“js数组去重的11种方法”的完整攻略。 引言 在JavaScript开发中,常常需要我们对数组进行去重的操作。由于JavaScript本身没有提供去重的方法,开发者需要结合一些技巧和方法来完成这个任务。本文将由浅入深介绍11种JavaScript数组去重的方法,希望对大家有所帮助。 方式一:使用Set类型 Set是一种新的ES6数据类型,它存…

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