首页 > 代码库 > JSON不是JavaScript对象
JSON不是JavaScript对象
一篇短小精悍的文章,我觉得不错就翻译了。
原文作者 Fizer Khan
原文地址 http://www.fizerkhan.com/blog/posts/JSON-is-not-Javascript-Object.html
很多人都把JSON当作JavaScript对象,但它根本不是。JSON只是一种灵感来自JavaScript对象结构的字符串表示法。JSON被设计得简单松散,用来在服务器和浏览器之间传输数据。因为它的简洁性,也在浏览器和服务器之外的其他应用中被使用。
我尝试拷贝一些JavaScript对象并发送到基于JSON的书签Web服务器,但是它不工作。为什么?看看我要发送的JavaScript对象。
{ name : "why this kolaveri di", url : "http://www.youtube.com/watch?v=YR12Z8f1Dh8", singer: "Dhanush", movie: "3", music : "Anirudh Ravichandran", views : 10000000, // Adding this for testing purpose play : function() { }, }
发送之后,从服务器返回这么一个错误:”Unexpected token n“(用NodeJS的Express框架发送),这表明我发送的不是合法的JSON。为找到原因,我去读了Douglas Crockford写的JSON spec 之后终于明白了:
- 所有的键都应该用双引号包裹
- JSON不支持注释
- JSON的值不能是函数或者undefined,一个值可以是双引号包裹的字符串,或者是数字,true,false,null,或者一个对象或者数组。上述成员可以嵌套在一起。
- JSON的最后一个值后面不能有逗号","
我把它改成正确格式:
{ "name" : "why this kolaveri di", "url" : "http://www.youtube.com/watch?v=YR12Z8f1Dh8", "singer": "Dhanush", "movie": "3", "views" : 10000000, "music" : "Anirudh Ravichandran" }
我认为学习JSON表示法是非常重要的,因为Web开发里的很多配置文件(package.json, bower.json)都是JSON格式的。所以每一位Web开发者必须理解JSON。
Happy coding and Have a nice day.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。