json.stringify

导读 `JSON.stringify()` 是 JavaScript 中的一个方法,用于将一个 JavaScript 对象或值转换为 JSON 字符串。JSON(JavaScript Object ...

`JSON.stringify()` 是 JavaScript 中的一个方法,用于将一个 JavaScript 对象或值转换为 JSON 字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和写入,同时也易于机器解析和生成。

以下是 `JSON.stringify()` 的基本用法和一些常见选项:

### 基本用法

```javascript

const obj = { name: 'John', age: 30 };

const jsonString = JSON.stringify(obj);

console.log(jsonString); // 输出:'{"name":"John","age":30}'

```

### 常见选项

1. ** replacer 参数**:这是一个函数或数组,用于过滤或替换要序列化的值。如果它是一个函数,那么在序列化过程中会被调用,并且可以为每个成员定制字符串表示形式。如果它是一个数组,那么只有数组中的值会被序列化。如果省略此参数,则默认序列化全部属性。

```javascript

const obj = { name: 'John', age: 30 };

const replacer = function(key, value) {

if (typeof value === 'string') {

return undefined; // 不序列化字符串值

}

return value;

}

const jsonString = JSON.stringify(obj, replacer); // 只序列化非字符串的值

```

2. **space 参数**:此参数用于美化输出 JSON 字符串。可以传入一个数字或字符串来指定输出的间距和换行符。数字表示每个级别的缩进量,字符串用于指定缩进字符。如果不提供或为 null,则输出紧凑格式(没有空格或缩进)。

```javascript

const obj = { name: 'John', age: 30 };

const jsonStringPretty = JSON.stringify(obj, null, 2); // 使用两个空格进行缩进

```

### 注意点

* 如果对象包含循环引用,`JSON.stringify()` 会抛出错误。这意味着对象直接或间接引用自身会导致无限递归,从而无法生成有效的 JSON 字符串。

* 如果对象包含某些不可序列化的值(如 `undefined`、`Symbol`、`Function` 等),这些值将被忽略或转换为其他格式。例如,`undefined` 会被忽略,而 `Symbol` 会被转换为字符串表示形式。

版权声明:本文由用户上传,如有侵权请联系删除!