JavaScript对象与Json对象的关系,Json是JavaScript的一个子集。JavaScript的对象是面向对象语言的一种表示方式,Json则是数据传输的一种格式(好比XML),因此两者之间在定义上没有很大关系;可是两者的格式书写很是类似(有一个细节就是:JS对象的key是能够使用引号也能够不使用;但是Json格式则必须对key使用引号),因此JS对象与Json很是容易转换,不过必定要记住,在JavaScript语言中Json只是一种符合固定格式的字符串,只是字符串!chrome
var obj = eval('('+jsonStr +')');json
对于为何要采用括号,是由于小括号把JSON字符串最外层的花括号强制定义为对象直接量的语义,由于Javascript中的花括号语义颇多,因此这是一个不错的方法。相比之下,咱们采用(function(){})()这里的小括号是把花括号理解为函数的定义,因此这个函数才会执行浏览器
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接能够用JSON对象的stringify()和parse()方法。函数
JSON.stringify(obj)将JSON转为字符串。spa
JSON.parse(string)将字符串转为JSON格式;code
var obj = jQuery.parseJSON('{"name":"John"}');对象
var jsonStr = Ext.util.JSON.encode(obj);ip
var obj = Ext.util.JSON.decode(jsonStr);ci
此外,encode和decode分别赋值给了Ext.encode和Ext.decode。开发
即开发时能够使用更简短的Ext.encode和Ext.decode而非冗长的Ext.util.JSON.encode和Ext.util.JSON.decode。
1 Ext.encode = Ext.util.JSON.encode;
2 Ext.decode = Ext.util.JSON.decode;
即开发时能够使用更简短的Ext.encode和Ext.decode而非冗长的Ext.util.JSON.encode和Ext.util.JSON.decode。