JSON.parse(text, reviver)使用例子
时间: 2024-07-18 16:01:15 浏览: 162
`JSON.parse(text, reviver)` 是 JavaScript 中用于将 JSON 格式的字符串转换成 JavaScript 对象的一个函数。`reviver` 参数是一个函数,可以被用来修改解析后的对象,比如处理特定的数据转换、解密或填充默认值等。
例如,假设我们有一个包含敏感信息的 JSON 字符串,我们需要将其转换成对象,同时安全地处理某些字段:
```javascript
// 假设我们有这样一个 JSON 字符串
let jsonString = '{"name": "John", "age": 30, "password": "secret"}';
// 定义一个 reviver 函数,对 "password" 字段进行脱敏处理
function decryptPassword(obj) {
if (obj.password && typeof obj.password === 'string') {
return { ...obj, password: "[DECRYPTED]" };
}
return obj;
}
// 使用 reviver 进行解析
let jsonObj = JSON.parse(jsonString, decryptPassword);
console.log(jsonObj); // 输出:{ name: "John", age: 30, password: "[DECRYPTED]" }
相关问题
JSON.stringify与JSON.parse的区别
`JSON.stringify()` 和 `JSON.parse()` 是 JavaScript 内置的两个用于处理 JSON 数据的函数。它们的主要作用如下:
1. **JSON.stringify()**:这个方法用于将 JavaScript 对象或值转换成 JSON 字符串。它接受一个JavaScript对象作为参数,并返回对应的字符串形式的JSON。例如:
```javascript
const obj = { name: 'John', age: 30 };
const jsonString = JSON.stringify(obj); // '{"name": "John", "age": 30}'
```
它还可以设置选项,如缩进、替换函数等。
2. **JSON.parse()**:相反,这个方法接收一个JSON格式的字符串作为参数,并将其解析回原生的 JavaScript 对象。例如:
```javascript
const jsonString = '{"name": "John", "age": 30}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // 输出 "John"
```
JSON.parse(JSON.stringify
JSON.parse(JSON.stringify(obj))是一种将JavaScript对象转换为JSON字符串再转回JavaScript对象的常见方法。在这个过程中,JSON.stringify()方法将JavaScript对象转换为JSON字符串,而JSON.parse()方法则将JSON字符串转换回JavaScript对象。
这种方法的主要用途是在JavaScript中对对象进行深拷贝。通过先将对象转换为JSON字符串,然后再将其转换回对象,可以创建一个原始对象的副本,而不是只是引用原始对象。
例如,假设我们有一个包含复杂嵌套结构的JavaScript对象obj,我们想要创建它的副本。我们可以使用JSON.parse(JSON.stringify(obj))来实现这一目标。
这种方法的好处是它可以处理几乎所有类型的JavaScript对象,包括数组、函数和日期对象等。
但需要注意的是,JSON.stringify()方法会忽略对象的某些属性,例如函数和原型链上的属性。因此,通过JSON.parse(JSON.stringify(obj))进行深拷贝时,可能会丢失一些对象的特定行为。
此外,在使用JSON.parse()和JSON.stringify()方法时,需要确保处理的对象是有效的JSON格式。如果对象中包含不支持的数据类型或循环引用,这些方法可能会导致错误。
总结起来,JSON.parse(JSON.stringify(obj))是一种将JavaScript对象转换为JSON字符串再转回JavaScript对象的方法,用于实现对象的深拷贝。但需要注意处理的对象应为有效的JSON格式,并且一些特定类型的属性可能会丢失。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [了解 JSON.parse() 和 JSON.stringify()](https://blog.csdn.net/allway2/article/details/123856863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法](https://download.csdn.net/download/weixin_38743391/13002642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文