JavaScript 生成 JSON 对象119
JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式,它基于 JavaScript 对象语法,广泛用于 Web 应用程序中传输数据。JavaScript 提供了内置的方法来生成 JSON 对象。
使用 ()
() 函数将 JavaScript 对象转换为 JSON 字符串。语法如下:```
(value, replacer?, space?)
```
* value:要转换的 JavaScript 对象。
* replacer:可选,一个函数或数组,它指定转换过程中如何处理对象属性。
* space:可选,一个指定输出 JSON 字符串缩进的字符串或数字。
例如:```
const person = {
name: "John Doe",
age: 30
};
const json = (person);
// 输出:{"name":"John Doe","age":30}
```
使用 ()
() 函数将 JSON 字符串转换为 JavaScript 对象。语法如下:```
(text, reviver?)
```
* text:要解析的 JSON 字符串。
* reviver:可选,一个函数,它指定如何将 JSON 值转换为 JavaScript 对象。
例如:```
const json = '{"name":"John Doe","age":30}';
const person = (json);
// 输出:{name: "John Doe", age: 30}
```
特殊情况
在某些情况下,() 无法正确转换某些数据类型:* 函数和 Symbol:函数和 Symbol 无法序列化为 JSON。
* 环形数据结构:如果 JavaScript 对象包含指向自身的引用,则 () 可能会陷入无限循环中。
* non-finite 数字:Infinity、-Infinity 和 NaN 无法序列化为 JSON。
自定义序列化
对于特殊情况或需要自定义序列化的场景,可以使用 replacer 参数。replacer 是一个函数,它接收两个参数:* key:属性或数组索引。
* value:属性值。
该函数可以返回一个要序列化的替换值,或者返回 undefined 来忽略该属性。
例如,要忽略 name 属性:```
const replacer = (key, value) => {
if (key === "name") {
return undefined;
}
return value;
};
const person = {
name: "John Doe",
age: 30
};
const json = (person, replacer);
// 输出:{"age":30}
```
自定义反序列化
类似地,可以使用 reviver 参数自定义 () 的反序列化行为。reviver 是一个函数,它接收两个参数:* key:属性或数组索引。
* value:属性值。
该函数可以返回一个用于替换的替换值,或者返回 undefined 来忽略该属性。
例如,要将 age 属性转换为字符串:```
const reviver = (key, value) => {
if (key === "age") {
return ();
}
return value;
};
const json = '{"name":"John Doe","age":30}';
const person = (json, reviver);
// 输出:{name: "John Doe", age: "30"}
```
2025-02-14
![在 JavaScript 中高效管理多个变量](https://cdn.shapao.cn/images/text.png)
在 JavaScript 中高效管理多个变量
https://jb123.cn/javascript/37216.html
![Python 编程基础图](https://cdn.shapao.cn/images/text.png)
Python 编程基础图
https://jb123.cn/python/37215.html
![[HTML+JS] 操纵元素属性和样式](https://cdn.shapao.cn/images/text.png)
[HTML+JS] 操纵元素属性和样式
https://jb123.cn/javascript/37214.html
![JavaScript 中的属性节点](https://cdn.shapao.cn/images/text.png)
JavaScript 中的属性节点
https://jb123.cn/javascript/37213.html
![JavaScript 与 PHP 的比较:为什么 JavaScript 被认为更难](https://cdn.shapao.cn/images/text.png)
JavaScript 与 PHP 的比较:为什么 JavaScript 被认为更难
https://jb123.cn/javascript/37212.html
热门文章
![JavaScript (JS) 中的 JSF (JavaServer Faces)](https://cdn.shapao.cn/images/text.png)
JavaScript (JS) 中的 JSF (JavaServer Faces)
https://jb123.cn/javascript/25790.html
![JavaScript 枚举:全面指南](https://cdn.shapao.cn/images/text.png)
JavaScript 枚举:全面指南
https://jb123.cn/javascript/24141.html
![JavaScript 逻辑与:学习布尔表达式的基础](https://cdn.shapao.cn/images/text.png)
JavaScript 逻辑与:学习布尔表达式的基础
https://jb123.cn/javascript/20993.html
![JavaScript 中保留小数的技巧](https://cdn.shapao.cn/images/text.png)
JavaScript 中保留小数的技巧
https://jb123.cn/javascript/18603.html
![JavaScript 调试神器:步步掌握开发调试技巧](https://cdn.shapao.cn/images/text.png)
JavaScript 调试神器:步步掌握开发调试技巧
https://jb123.cn/javascript/4718.html