Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / JSON不是JavaScript对象

很多人都把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 之后终于明白了:
  1. 所有的键都应该用双引号包裹
  2. JSON不支持注释
  3. JSON的值不能是函数或者undefined,一个值可以是双引号包裹的字符串,或者是数字,true,false,null,或者一个对象或者数组。上述成员可以嵌套在一起。
  4. 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.--------------------------------------分割线 --------------------------------------Struts中异步传送XML和JSON类型的数据 http://www.linuxidc.com/Linux/2013-08/88247.htmLinux下JSON库的编译及代码测试 http://www.linuxidc.com/Linux/2013-03/81607.htmjQuery 获取JSON数据[$.getJSON方法] http://www.linuxidc.com/Linux/2013-03/81673.htm用jQuery以及JSON包将表单数据转为JSON字符串 http://www.linuxidc.com/Linux/2013-01/77560.htm在C语言中解析JSON配置文件 http://www.linuxidc.com/Linux/2014-05/101822.htm--------------------------------------分割线 --------------------------------------本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-10/108489.htm