JSON.parse(JSON.stringify(res))
时间: 2024-02-24 18:51:48 浏览: 43
JSON.parse(JSON.stringify(res)) 是一种常用的将 JavaScript 对象转换为 JSON 字符串,然后再将 JSON 字符串转换回 JavaScript 对象的方法。它的作用是实现对象的深拷贝。
具体来说,JSON.stringify() 方法将 JavaScript 对象转换为 JSON 字符串,而 JSON.parse() 方法将 JSON 字符串转换为 JavaScript 对象。通过这种方式,可以创建一个与原始对象完全相同的新对象,而不是简单地引用原始对象。
这种方法常用于以下情况:
1. 对象的深拷贝:当需要创建一个与原始对象完全相同的新对象时,可以使用 JSON.parse(JSON.stringify(res)) 来实现深拷贝。
2. 移除对象中的循环引用:当对象中存在循环引用时,直接使用 JSON.stringify() 方法会抛出异常,而使用 JSON.parse(JSON.stringify(res)) 可以移除循环引用,得到一个没有循环引用的新对象。
需要注意的是,使用 JSON.parse(JSON.stringify(res)) 进行深拷贝时,可能会丢失一些特殊类型的数据,例如函数、正则表达式、日期等。因此,在使用该方法时需要注意对特殊类型数据的处理。
相关问题
为什么我用JSON.parse转化变成了JSON.parse(res)-------[object Object]
回答: 当你使用JSON.parse()方法将一个JSON字符串转换为JavaScript对象时,如果你传入的参数不是一个有效的JSON字符串,或者是一个无法被解析的字符串,那么JSON.parse()方法将返回一个\[object Object\]的字符串表示。这通常发生在你传入的参数不符合JSON格式的情况下。请确保你传入的参数是一个有效的JSON字符串,才能正确地将其转换为JavaScript对象。
#### 引用[.reference_title]
- *1* *2* [为什么要使用JSON.stringify()和JSON.parse()](https://blog.csdn.net/daishu_shu/article/details/124383384)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [37.JavaScript对象与JSON格式的转换,JSON.stringify、JSON.parse方法的使用方法和注意事项](https://blog.csdn.net/weixin_43302112/article/details/125468973)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
uni.getUserInfo({ success: (res2) => { // console.log('当前 res2', res2) res2.rawData = JSON.parse(res.rawData); res2.rawData.nickName = that.value res2.rawData.avatarUrl = that.url0 res2.rawData = JSON.stringify(res2.rawData) let ob = { detail: res2 }; // console.log(ob) console.log(111111111133331,res2) resolve(ob);解释
这段代码是使用uni.getUserInfo函数获取用户信息,并对获取的信息进行处理和修改。
uni.getUserInfo是uni-app框架中的一个API,用于获取用户信息。在success回调函数中,可以获取到用户信息的返回结果。
在这段代码中,首先使用箭头函数定义了success回调函数。在该回调函数中,对获取到的用户信息进行了一系列的处理和修改。
首先,通过JSON.parse解析res.rawData,并将解析后的结果赋值给res2.rawData。然后,将that.value赋值给res2.rawData.nickName,并将that.url0赋值给res2.rawData.avatarUrl。接着,通过JSON.stringify将res2.rawData转换为字符串。
然后,创建了一个名为ob的对象,其中将修改后的res2作为detail属性的值。
最后,使用console.log打印了res2,并通过resolve将ob对象传递给Promise的回调函数。
综合起来,这段代码的作用是获取用户信息,并对其中的nickName和avatarUrl属性进行修改和处理,然后将处理后的结果通过Promise传递给回调函数。