JS对象与与Json的转换

Json 与 JS对象的关系与转换

本秂侑毒 提交于 2019-12-02 01:01:53
背景 JavaScript对象与Json对象的关系,Json是JavaScript的一个子集。JavaScript的对象是面向对象语言的一种表示方式,Json则是数据传输的一种格式(比如XML),所以二者之间在定义上没有很大关系;但是二者的格式书写非常相似(有一个细节就是:JS对象的key是可以使用引号也可以不使用; 可是Json格式则必须对key使用引号 ),所以JS对象与Json非常容易转换,不过一定要记住,在JavaScript语言中Json只是一种符合固定格式的字符串,只是字符串! 1 使用Javascript 自带的 eval 方法,把JSON字符串转为Javascript对象 var obj = eval('('+jsonStr +')'); 对于为什么要采用括号,是因为小括号把JSON字符串最外层的花括号强制定义为对象直接量的语义,因为Javascript中的花括号语义颇多,所以这是一个不错的方法。相比之下,我们采用(function(){})()这里的小括号是把花括号理解为函数的定义,所以这个函数才会执行 2 使用高级浏览器自带解析机制 在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。 JSON.stringify(obj)将JSON转为字符串。 JSON