迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中将对象转换为字符串

作者:迹忆客 最近更新:2023/03/10 浏览次数:

JavaScript 对象由键值对形式的属性组成。如果我们将它们与字符串一起记录,我们会看到 [object Object]。它隐藏下面的对象属性。在编码时,我们需要将 javascript 对象转换为字符串数据类型。特别是在将数据存储到 localstorage 或数据库时。我们可以通过多种方式将 javascript 对象转换为字符串。

JSON.stringify() 是一个强大且常用的函数,用于将 javascript 对象转换为 JSON 字符串。我们还可以使用它来设置 JSON 表示的样式以获得更好的可读性。该函数接受三个参数:

使用方法请参考以下代码。

var item = {};
item.id = 1;
item.name = "icy-cream";
item.flavor = "vanilla";
console.log("Item: " + item);
console.log("Item: " + JSON.stringify(item));
console.log("Item: " + JSON.stringify(item, null, 2));

输出:

Item: [object Object]
Item: {"id":1,"name":"icy-cream","flavor":"vanilla"}
Item: {
  "id": 1,
  "name": "icy-cream",
  "flavor": "vanilla"
}

第一个日志输出 javascript 对象的屏蔽版本。第二个日志具有 JSON 对象的字符串表示形式,但没有格式化。最后一个日志是 javascript 对象的格式化版本,可读性很强。

console.log() 是一个内置的 javascript 函数,用于将值记录到浏览器控制台。它接受三个参数。第一个参数是 JavaScript 对象;第二个参数是要显示的消息;最后一个参数是要记录在 Web 控制台中的消息的子字符串。以下代码显示了使用 console.log 方法将 javascript 对象转换为字符串。

var item = {};
item.id = 1;
item.name = "icy-cream";
item.flavor = "vanilla";
console.log("Item: " + item);
console.log('Item: %o', item);

输出:

Item: [object Object]
Item: {id: 1, name: "icy-cream", flavor: "vanilla"}

在上面的代码中,第一个命令 console.log("Item: " + item); 将对象记录为 [object Object]。它隐藏了对象参数。然而,如果我们添加 %o 并将对象作为参数传递,我们可以看到 JavaScript 对象的内部内容。我们还可以使用 %O 来记录 JavaScript 对象。

请注意,console.log 中的 %o 允许我们在控制台中查看对象。但是我们不能使用它来转换值并将其存储在某个变量中以供进一步使用。

Object.enteries() 是一个内置的 JavaScript 函数。它将对象拆分为一个由 [key, value] 对组成的数组。因此,我们可以遍历这样的数组并手动将 JavaScript 对象转换为字符串。

var item = {};
item.id = 1;
item.name = "icy-cream";
item.flavor = "vanilla";
var stringifiedObj = Object.entries(item).map(x=>x.join(":")).join("\n");
console.log("Item: " + item);
console.log(`Item: \n{\n${stringifiedObj}\n}`);

输出:

Item: [object Object]
Item: 
{
id:1
name:icy-cream
flavor:vanilla
}

在代码中,我们首先使用 Object.enteries() 函数将对象拆分为一个由小参数数组组成的数组。接下来,我们通过应用 javascript 内置的 join(":") 函数将子数组转换为 key:value 格式。它将 Object.enteries 输出的 [key, value] 数组转换为 key:value 格式。我们最终将 JavaScript 对象记录在其字符串表示中。这是一个简洁的方法,它只使用一段代码,Object.entries(item).map(x=>x.join(":")).join("\n") 用于转换过程。

使用 Object.enteries() 进行转换的另一种方法是将它与 javascript 的 object destructuring 概念一起使用。使用这种技术,我们解构 Object.enteries() 输出的键值对数组,使用 for 循环 对其进行迭代,并将其分配给临时变量 paramvalue。我们将迭代的结果存储到 str 变量中。最后,我们使用 console.log() 记录变量 str。代码如下。

var item = {};
item.id = 1;
item.name = "icy-cream";
item.flavor = "vanilla";
var str = '';
for (const [p, val] of Object.entries(item)) {
    str += `${p}:${val}\n`;
}
console.log("Item: " + "{" + str + "}");

输出:

Item: {id:1
name:icy-cream
flavor:vanilla
}

我们可以使用 javascript 内置函数 Object.keys() 手动将 JavaScript 对象转换为 JSON 字符串。Object.keys() 返回一个包含 JavaScript 对象的所有键的数组。然后我们可以使用 for 循环迭代它们并形成 JavaScript 对象的字符串版本。最终结果可以记录或存储在变量中。代码如下。

var item = {};
item.id = 1;
item.name = "icy-cream";
item.flavor = "vanilla";
var str = '';
for (key of Object.keys(item)) {
    str += `${key}:${item[key]}\n`;
}
console.log("Item: " + "{" + str + "}");

输出:

Item: {id:1
name:icy-cream
flavor:vanilla
}

这个概念类似于使用 Object.enteries() 来获取 javascript 对象的参数。Object.enteries() 将键值对作为数组返回,而 Object.keys 返回对象键的字符串数组,通过循环输出数组并形成 javascript 对象的字符串表示进一步处理。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

用 jQuery 检查复选框是否被选中

发布时间:2024/03/24 浏览次数:102 分类:JavaScript

在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便