关于json的理解(js中)

来源:互联网 发布:营销网络地图图片制作 编辑:程序博客网 时间:2024/06/06 13:18

1、什么是json
一个对象是有若干个属性构成,这些属性没有顺序,在js中 可以使用{}来表示这个集合。json是一个直属与object的对象
2、js中语法{属性名:属性值,属性名:属性值,属性名:属性值…….}
3、定义一个json:
在定义json对象时,语法要求并不严格,也可以使用双引号或是单引号进行定义,它们表达的含义是相同的。

var p={name:'zhangsan',age:30,emial:'srdftyhu'};

4、js中json与数组的区别:
json的下表是一个字符串,二数组的下表是一个数字
json没有length属性,而数组是有length属性的
数组有两种循环。惊悚只有一种for in循环

5、js中将字符串转换成json的三种方式
方法一 使用eval eval方法必须要用一个圆括号包起来
原因:归结于eval本身的问题,由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
解决方法:加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。

(function strToJson(str){        var json=eval('('+str+')');        return json;    }

方法二 使用 new Functoin 的形式

function strToJson(str){        var json=(new Function("return"+str))();        return json;    }

方法三 使用全局的json对象 格式要求会比较严格 严格按照格式 里边用双引号 外边用单引号
JSON.parse() 会把一个字符串解析成 JSON 对象。如果字符串书写正确,那么其将会被解析成一个有效的 JSON,但是这个字符串被检测出错误语法的时候将会抛出错误。
JSON.parse() 不允许在末尾添加多余的逗号
JSON 的属性名必须使用双引号
数字不能用 0 开头,比如01,并且你的小数点后面必须跟着至少一个数字

function strToJson(str){       return JSON.parse(str);    }

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

原创粉丝点击