资讯专栏INFORMATION COLUMN

JSON不等于JavaScript对象

icattlecoder / 2587人阅读

摘要:很多人将看成是对象。其实是一种字符串的表示方法,这种表示受到了对象结构的启发而已。设计的用意是方便服务器和浏览器交换数据。值可以是用双引号包裹的字符串,或是数字,或,或,或一个对象数组。的最后一个值不使用分隔符。

很多人将JSON看成是JavaScript对象。其实JSON是一种字符串的表示方法,这种表示受到了JavaScript对象结构的启发而已。设计JSON的用意是方便服务器和浏览器交换数据。由于JSON的简单性,在浏览器、服务器之外的领域也有广泛的应用。

我尝试复制一些JavaScript对象,然后将它们发送到一个基于JSON的书签站点。但是它不能工作,为什么?让我们检查一下我尝试发送的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框架搭建),这意味着上面的JavaScript对象不是合法的JSON。我阅读了Douglas Crockford的JSON说明,然后注意到了这些规定:

所有的键必须用双引号包裹

JSON不支持注释

JSON的值不得为函数,不得未定义。值可以是用双引号包裹的字符串,或是数字,或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。

原文 JSON is not Javascript Object
翻译 SegmentFault

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87507.html

相关文章

  • 什么是接口测试?接口测试基础、案例及Json格式详解

    摘要:什么是接口测试全称接口是一个位于复杂系统之上能简化任务,像中间人一样不需要你了解详细的所有细节。接口测试与性能测试之间存在接口性能测试,主要通过来进行压测。 很多小...

    WalkerXu 评论0 收藏0
  • Javascript核心参考

    摘要:提取字符串的一个子串,的一个变体提取字符串的一个子串返回指定字符串的一份副本都转化为小写返回指定字符串的一份副本都转化为大写返回指定字符串的一份副本,其中前后的空白字符都已删除返回原始的字符串值。 Arguments callee 指代当前正在执行的函数 length 传递给函数的参数个数,以及Arguments对象中数组元素的个数 Array 构造函数 new Array()...

    G9YH 评论0 收藏0
  • 知道的 JSON.stringfy

    摘要:会对对象中的每一个键值对调用函数,然后会使用其返回值,作为格式化后的值,比如使每个属性的值递增函数在省略敏感数据时,十分有用。如果它发现方法,会调用它,然后将它的返回值替换格式化后的值,比如方法可以返回任意的值,包括对象基础类型,或者。 http://thecodebarbarian.com/t... 写在前面 JSON.stringfy()是将一个 JavaScript 对象转化为 ...

    taohonghui 评论0 收藏0
  • 面试闯关1

    摘要:面试闯关在面试过程中,总会被问到一些你用到过但是记不清一些零碎的知识,现在做一下总结。在兼容模式中,页面以宽松的向后兼容的方式显示模拟老式浏览器的行为以防止站点无法工作。作为对象原型链的终点。格式采用键值对,例如参考面试总结 面试闯关1 在面试过程中,总会被问到一些你用到过、但是记不清一些零碎的知识,现在做一下总结。 第一部分:HTML+CSS 1.常用那几种浏览器测试?有哪些内核(L...

    malakashi 评论0 收藏0
  • 面试闯关1

    摘要:面试闯关在面试过程中,总会被问到一些你用到过但是记不清一些零碎的知识,现在做一下总结。在兼容模式中,页面以宽松的向后兼容的方式显示模拟老式浏览器的行为以防止站点无法工作。作为对象原型链的终点。格式采用键值对,例如参考面试总结 面试闯关1 在面试过程中,总会被问到一些你用到过、但是记不清一些零碎的知识,现在做一下总结。 第一部分:HTML+CSS 1.常用那几种浏览器测试?有哪些内核(L...

    cgspine 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<