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

author author     2023-05-01     694

关键词:

js中eval()和$.parseJSON()的区别以及JSON.stringify()1.第一个区别是:安全性json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢?JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的如:[javascript]viewplaincopyvarstr='alert(1000.toString())';eval(str);JSON.parse(str);用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。注意:某些低级的浏览器尚不支持JSON.parse()《高性能JavaScript》一书即指出:警告:关于JSON和eval需要注意的是:在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身。该方法可以捕捉JSON中的语法错误,并允许你传入一个函数,用来过滤或转换解析结果。如果此方法以备Firfox3.5、IE8及Safari4原生支持。大多数javascript类库包含的JSON解析代码会直接调用原生版本,如果没有原生支持的话,会调用一个略微不那么强大的非原生版本来处理。2.第二个区别:JSON.parse()解析的必须是json格式的字符串要不报错,而eval()则没有这么严格在这里“json格式的字符串”是指要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常json的解析方法共有两种:eval和JSON.parse(),如:[javascript]viewplaincopyvarjsonStr='"name":"lulu","sex":"female"';varevalJson=eval('('+jsonStr+')');varjsonParseJson=JSON.parse(jsonStr);这样就把json格式的字符串jsonStr转换成了JSON对象。但是区别是:[javascript]viewplaincopyvarage=27;varjsonStr='"name":"lulu","sex":"female","age":++age';varevalJson=eval('('+jsonStr+')');//不报错此时age的值是28varjsonParseJson=JSON.parse(jsonStr);//报错从上面eval()函数的用法我们可以看出eval()函数在解析json格式的字符串时要加上圆括号如eval('('+jsonStr+')'),这是因为:eval本身的问题。由于json是以””的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量,如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么将会被认为是执行了一句空语句。JSON.stringify()JSON.stringify()是把json数据转化成json格式的字符串如:[javascript]viewplaincopyvarjsonObj="name":"lulu","sex":"female";varjsonStr=JSON.stringify(jsonObj);结果是:'"name":"lulu","sex":"female"' 参考技术A js数组使用JSON.stringify和toString的区别如下:
1、JSON.stringify()是json对象的一个方法,它可以把对象序列化成json字符串。
toString是一个js对象的方法,任何对象都会继承这个方法,也就是Object.prototype.toString(),返回值类型为:[object Object]
2、用法上的区别举例:
比如定义:obj =[1,2,3]
那么用toString的结果是"1,2,3",用JSON.stringify()的结果是"[1,2,3]"

二者处理后的结果是不同的。本回答被提问者采纳

js数组转换成json串(json.stringify)

例如:var giftlist[1490011777]=[];giftlist[1490011777][‘id‘]= 1490011777;giftlist[1490011777][‘name‘]= "礼包测试";giftlist[1490011777][‘desc‘]= "详情"; 转换json串varjsonStr=JSON.stringify 查看详情

如何正确使用 JSON.stringify 和 json_decode()

】如何正确使用JSON.stringify和json_decode()【英文标题】:howtouseJSON.stringifyandjson_decode()properly【发布时间】:2013-04-0520:36:46【问题描述】:我试图通过以下方式将多维Javascript数组传递到我网站上的另一个页面:在数组上使用JSON.strin... 查看详情

使用 JSON.stringify 时不需要的数组索引

】使用JSON.stringify时不需要的数组索引【英文标题】:UnwantedarrayindexeswhenusingJSON.stringify【发布时间】:2012-02-1109:04:27【问题描述】:我使用JSON.stringify方法将数组传递给服务器。我有一个包含4个元素的数组:arr[10]=1;arr[20]=1;arr[30]... 查看详情

js传递数组到后台

方法一: 1.使用JSON.stringify将数组对象转化成json字符串;vararray=["1","2"];$.ajax({type:‘POST‘,url:path+‘/check/testPost‘,contentType:"application/json",data:JSON.stringify(array),success:function(data){}});  查看详情

js怎么把数组转换成json字符串

...数组的好处是键可以任意定义。现代浏览器中提供了JSON.stringify()方法将数组,对象转成json。JSON.stringify把一个对象转换成json字符串,JSON.parse把一个json字符串解析成对象。不支持的可以引入json2.js$.fn.stringifyArray=function(array)returnJ... 查看详情

js中json.stringify()方法,将js对象转换成字符串,传入服务器

...在向服务器发送数据时一般是字符串。我们可以使用JSON.stringify()方法将JavaScript对象转换为字符串。语法JSON.stringify(value[,replacer[,space]])参数说明:value:必需,要转换的JavaScript值(通常为对象或数组)。replacer:可选。用于转换结... 查看详情

json.stringify()的使用

参考技术A复制粘贴一下JSON.stringify()三个参数的含义:返回值:返回包含JSON文本的字符串。从上面的参数说明中可以看到,第二个参数可以是一个函数或者数组,这给了我们很大的发挥空间。stringify()的第一个和第三个参数都好... 查看详情

js中json.stringify()与json.parse()与eval()详解及使用案例

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使使JSON称为理想的数据交换语言,作用是易于阅读和编写,同时也易于机器解析和生成... 查看详情

Node.js - 使用 json.stringify 时,正文搞砸了

】Node.js-使用json.stringify时,正文搞砸了【英文标题】:Node.js-Bodyismessedupwhenusingjson.stringify【发布时间】:2014-07-3116:19:49【问题描述】:客户:$.ajax(url:some_url,type:\'post\',dataType:\'json\',data:JSON.stringify(myArray:[])...$.ajax(url:some 查看详情

js解析与序列化json数据(一)json.stringify()的基本用法

...进行了规范,定义了全局对象JSON。JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。例如:新建一个HTML:代码如下:复制代码... 查看详情

010天json.stringify()详解(代码片段)

JSON.stringify()除了要序列化的js对象外,还可以接受另外两个参数,这两个参数用于指定以不同的方式序列化js对象。第一个参数是个过滤器,可以是一个数组,也可以是一个函数;第二个参数是一个选项,表示是否在JSON字符串中... 查看详情

qs.stringify、qs.parse、json.stringify的使用和区别

...安装,是一个npm仓库所管理的包。importqsfrom'qs'而qs.stringify()将对象序列化成URL的形式,以&进行拼接。如图qs.parse()将URL解析成对象的形式JSON是正常类型的JSON JSON.stringify同qs.stringify()对比,功能虽然是都是序列化,但是... 查看详情

使用 JSON.stringify(queryObject) 时来自 mongoose js 的意外行为

】使用JSON.stringify(queryObject)时来自mongoosejs的意外行为【英文标题】:UnexpectedbehaviorfrommongoosejswhenusingJSON.stringify(queryObject)【发布时间】:2021-08-2821:30:08【问题描述】:当我执行JSON.stringify(theKey:\'some\\thing\'时,结果将是:"theKey":"s... 查看详情

如何在不使用 JSON.stringify 或 JSON.parse 的情况下在 javascript 中克隆数组? [复制]

】如何在不使用JSON.stringify或JSON.parse的情况下在javascript中克隆数组?[复制]【英文标题】:HowtocloneanarrayinjavascriptwithoutusingJSON.stringifyorJSON.parse?[duplicate]【发布时间】:2014-11-0521:10:30【问题描述】:我有一个数组示例fruit。我想将... 查看详情

原生js实现json.parse()和json.stringify()(代码片段)

-首先JSON.stringify()是将js对象转换为JSON形式实现思路:通过递归调用,来实现对转换对象Object的深层value进行遍历,利用array的join实现最终字符串拼接functionmyJsonStringify(obj)lettype=typeofobj;if(type!=="object"||type===null)if(/string|undefined|funct 查看详情

json.stringify详解

参考技术A当我们使用JSON.stringify()序列化一个值为JSON字符串,只有JSON安全的值才可以通过JSON.stringify()转换为字符串。那么,什么是JSON安全的值?能够有效用JSON形式表示的任何值。非JSON安全的值,例如:undefined、function和symbol... 查看详情

js之json.stringify()使用详解

参考技术A方法定义:JSON.stringify(value,replacer,space)参数说明:value:js对象replacer:替换对象,可以是一个方法、对象或数组,将value按照替换规则展示。space:填充参数,可以是数字或字符串,将value按照参数进行格式化展示。方... 查看详情

js声明json数据,打印json数据

...//打印JSON//打印JSON需要用到JSON(JS自带)的一个对象方法stringify//语法如下alert(JSON.stringify(json));总结,在JS里面使用JSON的表现能力比数组优秀。 查看详情