关于vue中json.parse(json.stringify(...))使用深拷贝问题

zmand      2022-02-13     198

关键词:

一般我们单独用JSON.parse()或JSON.stringify()

今天在学vue看到JSON.parse(JSON.stringify(...))的用法,这里研究一下;

首先分别说下他们的用法:

  JSON.parse()  是将字符串中的对象解析出来

例:  var str = "{‘name‘:‘huahua‘,‘age‘:‘22‘}";

    JSON.parse(str);

   var obj = {name:"hua",age: 26};

    JSON.stringify(obj);

拷贝一个字符串会新辟一个新的存储地址,这样就切断了引用对象的指针联系,所以先转成一个字符串,在解析出对象,这样就可以深拷贝一个对象

深拷贝浅拷贝问题

1varcloneObj=function(obj){2varstr,newobj=obj.constructor===Array?[]:{};3if(typeofobj!==‘object‘){4return;5}elseif(window.JSON){6str=JSON.stringify(obj),//系列化对象7newobj=JSON.parse(str);//还原8}else{9for( 查看详情

在 JSON.parse 期间在节点中捕获异常

...行中的JSON时死机:varjson=JSON.parse(message);我阅读了thisthread关于如何在节点中捕获异常的内容,但我仍然不确定在此语句周围包装try和catch块的正确方法是什么。我的目标是捕 查看详情

json对象与json字符串互转

1.jQuery插件支持的转换方式$.parseJSON(jsonstr);//jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:JSON.parse(jsonstr);//可以将json字符串转换成json对象 JSON.s... 查看详情

关于json解析的几种方法

parse用于从一个字符串中解析出json对象,如 varstr=‘{"name":"huangxiaojian","age":"23"}‘注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。  JSON.parse(jsonString):在一个字符串中解析出JSON对象varstr=‘[{"href":"b... 查看详情

原生js中的常用方法的写法

1、js深度克隆的方法//第一种functiondeepClone(obj){varstr,newObj=objinstanceofArray?[]:{};if(typeofobj!==‘object‘){return;}elseif(window.json){str=JSON.stringify(obj);newObj=JSON.parse(str);}else{for(variinobj){n 查看详情

关于json.parse在ie6,ie7下未定义的issue

情况是这样的: 在ie6下出现一个jserror,说是JSON.parse为定义,一查,才知道,ie6,ie7不支持JSON。 solution:只要在使用JSON之前加载个json2.js就行了。 参考:http://stackoverflow.com/questions/2503175/json-on-ie6-ie7 json2.js下载:&... 查看详情

关于ajax中获取到的数据格式不是标准的json的

   对于标准json格式的数据,是长这个样子的,用单引号括起来,其中的字符串使用双引号给括起来,如下所示   1varobj=‘{"name":"小红","age":"18"}‘; 标准的json格式的数据可以使用JSON.parse()方法来将字符串转成对象,但是... 查看详情

json对象与json字符串互转(4种转换方式)

1>jQuery插件支持的转换方式$.parseJSON(jsonstr);//jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: JSON.parse(jsonstr);//可以将json字符串转换成json对象JSON.s... 查看详情

json对象与json字符串互转(4种转换方式)

1>jQuery插件支持的转换方式$.parseJSON(jsonstr);//jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: JSON.parse(jsonstr);//可以将json字符串转换成json对象JSON.s... 查看详情

关于json解析的问题(代码片段)

  我们都知道,现在的开发模式都是前后端分离的,后台返回数据给前端,前端负责数据交互并渲染到页面,所以我们需要从后端接口上获取数据显示到页面上。在接受服务器端数据数据时,一般是字符串。这时,就需要用到... 查看详情

Vue JS 在 console.log 上返回 [Object object] 在 JSON.parse 上返回 Undefined

】VueJS在console.log上返回[Objectobject]在JSON.parse上返回Undefined【英文标题】:VueJSreturning[Objectobject]onconsole.logandUndefinedonJSON.parse【发布时间】:2020-04-1216:05:15【问题描述】:所以我正在编写这个Vue.JS代码来显示PHP从服务器获取的数据... 查看详情

vue关于this.a=this.b,改变this.b的数据问题

参考技术A因为需要对请求到的数据进行处理后在渲染到视图上,所以借助handleDate变量来对原始的数据data2进行处理,如上当this.data2=this.handleDate时,最后渲染的数据发现handleDate的数据也被改变了。解决方法:因为1、在vue中this.A=... 查看详情

vue表单form数据转化为json字符串

参考技术AJSON.parse()与JSON.stringify()的作用JSON.parse():将json字符串转化为对象JSON.stringify():将js值转化为json字符串使用场景:一、路由需要传对象作为参数时二、在缓存中存储对象(数组、字典等)三、判断数组、字典或其他对象是否... 查看详情

没有严格模式的 JSON.parse

...】:2012-03-0503:21:18【问题描述】:我正在阅读JohnResigblog关于javascript中的严格模式,但我有一个问题。StrictMode的特点之一是使用JSON.parse和JSON.stringify,但我可以在不“使用严格”的情况下使用它。如果您编写的示例与他在他的博... 查看详情

如何在笑话测试中模拟 json.parse()

】如何在笑话测试中模拟json.parse()【英文标题】:howtomockjson.parse()injesttests【发布时间】:2019-04-1304:39:35【问题描述】:我的代码中有一个try/catch,当代码落入catch部分时,它会遇到JSON.parse()catch(err)JSON.parse(err.message)代码正在运... 查看详情

json中eval与parse的区别

json的的解析方法 (非原创)json的解析方法共有两种:eval_r()和JSON.parse(),使用方法如下:varjsonData=‘{"data1":"Hello,", "data2":"world!}‘;varevalJson=eval_r(‘(‘+jsonData+‘)‘);varjsonParseJson=JSON.parse(jsonData);这样就把js 查看详情

js数组使用json.stringify和tostring的区别

...不支持JSON.parse()《高性能JavaScript》一书即指出:警告:关于JSON和eval需要注意的是:在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身。该方... 查看详情

如何将单引号 (') 捕获到 JSON.parse 的字符串中?

】如何将单引号(\\\')捕获到JSON.parse的字符串中?【英文标题】:Howtocatchsinglequotesymbol(\')intostringforJSON.parse?如何将单引号(\')捕获到JSON.parse的字符串中?【发布时间】:2017-11-2109:55:50【问题描述】:我从Django获取大量数据到模板... 查看详情