字面量:百度百科解释,在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)
有的解释literal代表如何表达一个值譬如15这个值,你可以用字符串字面量“15”、“十五”或者数值字面量15等方式来表示
json的问题
很多人容易把js对象字面量和json字符串搞混
json本质是一种数据交换格式,或者说是一种用于描述复杂结构的字符串的规则和语法。只不过这个语法依托于js语法,是js语法的一个子集。
何时是json?
这取决于其所处上下文,如果是字符串上下文,即用单引号或双引号括住或者从文件或网络获取的string格式。那他就是json字符串
var a = '{"prop","val"}';//json字符串 var b = {"prop","val"};//对象字面量
注意:json语法更严格键值对都必须用双引号引住。
真正的json对象
json对象跟对象字面以及json字符串是完全不同的概念,而是类似Math的浏览器内置对象,目前有2个静态方法:JSON.parse用于将json字符串反序列化成对象,JSON.stringify用来将对象序列化成json字符串。老版本浏览器不支持这个对象可以用json2.js来实现同样的功能
var json_string = '{"prop":"val"}'; var my_obj = JSON.parse(json_string); alert(my_obj.prop); //val