Javascript如何操作JSON如何进行序列化和解析

来源:安卓APP网作者:广州SEO公司头衔:草根站长
导读:本期聚焦于小伙伴创作的《Javascript如何操作JSON如何进行序列化和解析》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Javascript如何操作JSON如何进行序列化和解析》有用,将其分享出去将是对创作者最好的鼓励。

在Javascript开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,凭借结构简单、易读易写的特性,被广泛应用于前后端数据交互、本地数据存储等场景。对JSON数据进行序列化和解析是Javascript操作JSON的核心能力,下面我们就来详细了解相关的实现方法。

Javascript如何操作JSON如何进行序列化和解析

JSON基础概念

JSON本质上是一种文本格式,它的语法和Javascript对象字面量非常相似,但存在一定区别:JSON的键名必须用双引号包裹,字符串值也必须用双引号包裹,不支持函数、undefined等类型的数据。一个简单的JSON字符串示例如下:

// 合法的JSON字符串
const jsonStr = '{"name":"张三","age":25,"isStudent":false}';

JSON序列化:JSON.stringify()

JSON序列化指的是将Javascript对象转换为JSON字符串的过程,Javascript内置的JSON.stringify()方法可以实现这个功能。

基本用法

该方法接收三个参数,最常用的是前两个:第一个参数是需要序列化的Javascript对象,第二个参数是可选的替换器(可以是函数或数组),第三个参数是可选的分隔符(用于控制缩进)。

// 定义一个Javascript对象
const user = {
    name: "李四",
    age: 30,
    hobbies: ["篮球", "阅读"],
    address: {
        city: "北京",
        street: "朝阳路"
    }
};

// 基本序列化,不传递第二、第三个参数
const basicJsonStr = JSON.stringify(user);
console.log(basicJsonStr);
// 输出:{"name":"李四","age":30,"hobbies":["篮球","阅读"],"address":{"city":"北京","street":"朝阳路"}}

// 传递第三个参数设置缩进,方便阅读
const formattedJsonStr = JSON.stringify(user, null, 2);
console.log(formattedJsonStr);
// 输出带2个空格缩进的格式化JSON字符串

替换器参数的使用

当第二个参数是数组时,只会序列化数组中指定的属性;当第二个参数是函数时,可以对每个键值对进行处理后再序列化。

const user = {
    name: "李四",
    age: 30,
    password: "123456"
};

// 数组作为替换器,只保留name和age属性
const filteredJsonStr = JSON.stringify(user, ["name", "age"]);
console.log(filteredJsonStr); // 输出:{"name":"李四","age":30}

// 函数作为替换器,对age属性做处理
const processedJsonStr = JSON.stringify(user, (key, value) => {
    if (key === "age") {
        return value + 1; // 年龄加1
    }
    if (key === "password") {
        return undefined; // 过滤掉password属性
    }
    return value;
});
console.log(processedJsonStr); // 输出:{"name":"李四","age":31}

序列化注意事项

  • 如果对象中包含函数、undefined、Symbol类型的值,这些值会被忽略(在数组中会转为null)。
  • 如果对象包含toJSON方法,序列化时会调用该方法,返回的值作为序列化的结果。
  • 不支持序列化循环引用的对象,否则会抛出错误。

JSON解析:JSON.parse()

JSON解析指的是将JSON字符串转换为Javascript对象的过程,Javascript内置的JSON.parse()方法可以实现这个功能。

基本用法

该方法接收两个参数,第一个参数是需要解析的JSON字符串,第二个参数是可选的还原函数,可以对解析后的每个键值对进行处理。

// 合法的JSON字符串
const jsonStr = '{"name":"王五","age":28,"birthDate":"2000-01-01"}';

// 基本解析
const userObj = JSON.parse(jsonStr);
console.log(userObj.name); // 输出:王五
console.log(userObj.age); // 输出:28

// 使用还原函数,将birthDate字符串转为Date对象
const userObjWithDate = JSON.parse(jsonStr, (key, value) => {
    if (key === "birthDate") {
        return new Date(value);
    }
    return value;
});
console.log(userObjWithDate.birthDate instanceof Date); // 输出:true

解析注意事项

  • 传入的字符串必须是合法的JSON格式,否则会抛出语法错误,建议使用try...catch包裹解析逻辑处理异常。
  • JSON字符串中的键名和字符串值必须使用双引号,单引号会导致解析失败。
const invalidJsonStr = "{'name':'赵六'}"; // 使用单引号,非法JSON
try {
    const obj = JSON.parse(invalidJsonStr);
} catch (e) {
    console.error("JSON解析失败:", e.message); // 输出错误信息
}

常见使用场景

场景操作
前后端数据交互前端将请求参数用JSON.stringify()序列化后发送,后端返回JSON字符串后前端用JSON.parse()解析
本地存储数据将数据序列化后存入localStorage,读取时用JSON.parse()还原为对象
深拷贝简单对象通过JSON.parse(JSON.stringify(obj))实现简单对象的深拷贝(无法拷贝函数、undefined等)

总结

Javascript操作JSON的序列化和解析主要通过内置的JSON.stringify()JSON.parse()两个方法实现,前者负责将JS对象转为JSON字符串,后者负责将JSON字符串转为JS对象。使用时需要注意两者的参数配置、适用场景和潜在的异常问题,结合具体需求合理使用替换器和还原函数,可以更灵活地处理JSON数据。

JSONJSON_parseJSON_stringify序列化解析修改时间:2026-06-19 13:27:15

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。