js里JSON.js parsee问题

之前自己一直对ajax不是特别的熟悉所以一般都很少用这个去写功能,但是最近这个项目中用到了用ajax异步传数据,json传数据这个时候就需要去解析传过来的数据了eval()和$.parseJSON()都是鈳以解析数据的,但是他们也是有区别的;

用eval可以解析并且会弹出对话框,而用JSON.parse()则解析不了 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本用eval也是可以操作的,而用JSON.parse()则不必担心这个问题

注意:某些低级的浏览器尚不支持JSON.parse()

2:JSON.parse()解析的必须是json格式的字符串要不报错,而eval()则没有这么严格

这里“json格式的字符串”是指要求指定的字符串必须符合严格的JSON格式例如:属性名称必须加双引号、字符串值也必须用双引号。

如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常

这样就把json格式的字符串jsonStr转换成了JSON对象

eval本身的问题。 由于json是以”{}”的方式来开始以及结束的在JS中,它会被当成一个语句块来处理所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象而不是作为语句(statement)来执行。举一个例子例洳对象字面量{},如若不加外层的括号那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句

踩过的坑都将成为路上的风景
隊友在cookie中已存以下值:

仔细观摩,并无发现任何不妥只是一种简简单单的json格式字符串而已。

但在前台调用时百试不爽,屡屡出错错誤代码如下,一直显示undefined

JSON.parse() 方法将一个 字符串解析成一个 JSON 对象。在解析过程中还可以选择性的修改某些属性的原始解析值.

JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串。若转换的函数被指定则被序列化的值的每个属性都会经过该函数的转换和处理;若转换的数组被指定,只有包含在这個数组中的属性名才会被序列化到最终的 JSON 字符串中

我要回帖

更多关于 js parse 的文章

 

随机推荐