实用网络站
白蓝主题五 · 清爽阅读
首页  > 电脑进阶

JS对象转JSON:前端开发中的实用技巧

在日常写网页的时候,经常需要把 JavaScript 里的数据传给后端,或者存到本地。这时候,JS 对象直接扔过去是不行的,得先转成字符串格式——也就是大家常说的 JSON

什么是 JS 对象转 JSON?

JavaScript 对象是代码里常见的数据结构,比如用户信息、配置项、表单数据等。而 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,本质就是字符串。要把对象传给服务器或存进 localStorage,就得把它变成 JSON 字符串。

这个转换过程,在 JS 里有一个现成的方法:JSON.stringify()

基本用法很简单

假设有这样一个对象:

const user = {
  name: "张三",
  age: 28,
  city: "杭州"
};

const jsonStr = JSON.stringify(user);
console.log(jsonStr); // {"name":"张三","age":28,"city":"杭州"}

输出的结果是一个标准的 JSON 字符串,可以直接发给接口或者写入文件。

处理复杂情况

有时候对象里有些字段不想传,或者要过滤掉函数、undefined 这类无法序列化的值。可以用 stringify 的第二个参数做筛选。

const data = {
  name: "李四",
  type: "admin",
  password: "123456",
  log: function() { console.log("记录"); }
};

// 只保留 name 和 type
const jsonStr = JSON.stringify(data, ['name', 'type']);
console.log(jsonStr); // {"name":"李四","type":"admin"}

也可以传一个函数来自定义处理逻辑:

const jsonStr = JSON.stringify(data, (key, value) => {
  if (key === 'password') return undefined; // 过滤密码
  return value;
});

这样生成的字符串里就不会包含敏感字段了。

美化输出格式

调试时如果想让 JSON 字符串更易读,可以用第三个参数控制缩进。

const pretty = JSON.stringify(user, null, 2);
console.log(pretty);
// 输出带缩进的格式,方便查看
// {
//   "name": "张三",
//   "age": 28,
//   "city": "杭州"
// }

这种格式适合打印日志或导出配置文件。

反过来:JSON 转回对象

拿到 JSON 字符串后,要用 JSON.parse() 变回 JS 对象。

const obj = JSON.parse(jsonStr);
console.log(obj.name); // 张三

注意,传进去的必须是合法的 JSON,否则会报错。比如单引号、末尾多逗号这些都不行。

实际开发中,前后端交互、配置存储、跨页面传数据,几乎天天都会遇到对象和 JSON 的来回转换。掌握好这两个方法,能少踩很多坑。