看了汤姆大叔的博客http://www.cnblogs.com/TomXu/archive/2012/01/11/2311956.html
博客原文:
我认为很多JavaScript开发人员都错误地把JavaScript对象字面量(Object Literals)称为JSON对象(JSON Objects),因为他的语法和JSON规范里描述的一样,但是该规范里也明确地说了JSON只是一个数据交换语言,只有我们将之用在string上下文的时候它才叫JSON。
// 这是JSON字符串 var foo = ‘{ "prop": "val" }‘; // 这是对象字面量 var bar = { "prop": "val" };
关于json的解读,我做一个小实验
var data = ‘{ "prop": "haha" }‘; //如果写成{"prop":"haha"}会出错 var parsedData = JSON.parse( data ); //parsedData此时变成一个object alert( parsedData.prop ); // haha var returnJsonData = JSON.stringify( parsedData ); alert(returnJsonData); //{"prop":"data"} 关于json的解读,我做一个小实验
这里的data是一个字符串,可以用JSON.parse解析
但我们一般用json发送数据和返回数据都是这样
var data = { "title": "xxx", "id" : "xx" }; $.post("xxx.json", data, callback); 而我们的json文件是这样 { "success":true } 返回后解析 function callback(data){ data = JSON.parse(data); alert(data.success); //true }
好像跨文件发送返回json和在一个script下写的json不太一样?这是看到这样一段评论
--------------------------------------
JSON就是一个有特殊规则的字符串,按照这个规则我们就可以把这个字符串解析成JS对象。
JSON对象就是Gecko 1.9.1引擎用C++实现的一个辅助对象。帮我们方便的将符合JSON字符串转化成JS对象,或者由JS对象转向同样符合JSON规定的字符串。当然你可以起名叫JSON HELPER之类的,只要浏览器是你自己实现的话。
JS用于调整浏览器的解析和渲染过程。浏览器的这个接口不一定用JS来实现,但是JS是最流行的一种对于HTML这个树形结构的操作手段的实现。
ECMA是一种规则,DOM也是一种规则,也可以说是接口。
------------------------------------------------
json小实验
时间: 2024-11-09 01:39:10