jquery 的JSON.parse JSON.stringify 和parseJSON 方法的区别使用

1.JSON.parse(str) 用于从一个字符串中解析出json对象,如

var str = '{"name":"huangxiaojian","age":"23"}'json

结果:函数

JSON.parse(str)spa

Object
  1. age"23"
  2. name"huangxiaojian"
  3. __proto__Object

注意:单引号写在{}外,每一个属性名都必须用双引号,不然会抛出异常。code

 

2.JSON.stringify(a) 用于从一个对象解析出字符串,如

var a = {a:1,b:2}orm

结果:对象

JSON.stringify(a)ip

"{"a":1,"b":2}"字符串

 

3.jQuery.parseJSON()函数用于将格式无缺的JSON字符串转为与之对应的JavaScript对象

所谓"格式无缺",就是要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。

a:若是传入一个格式不"无缺"的JSON字符串将抛出一个JS异常,例如:如下字符串均符合JSON格式,但它们不是格式无缺的JSON字符串(所以会抛出异常):string

// 如下均是字符串值,省略了两侧的引号,以便于展示内容

{id: 1} // id是属性名称,必须加双引号
{'id': 1} // id是属性名称,必须用双引号(不能用单引号)
{"name": 'CodePlayer'} // name属性的值是字符串,必须用双引号(不能用单引号)

b:JSON标准不容许字符串中出现"控制字符",例如:一个Tab或换行符。it

$.parseJSON('{"name": "Code\tPlayer\n"}'); // 多数状况下,它会抛出一个错误,由于JS解析器会将字符串中的\t或\n等转义直接视做字面值,起到Tab或换行的效果。

//正确写法应该以下(使用两个反斜杠,以避免被JS解析器直接转义\t或\n):
$.parseJSON('{"name": "Code\\tPlayer\\n"}');
相关文章
相关标签/搜索