zoukankan      html  css  js  c++  java
  • 理解JSON:3分钟课程

    本文是从 Understanding JSON: the 3 minute lesson 这篇文章翻译而来。


    如果你跟我一样(我担心你就是),那么,到目前为止,这应该是你对JSON的经验:

    1. 两个月前你从没 听说过JSON
    2. 一个月前你听说了这个词但没有留意
    3. 一周前你发现这个词被提到多次,开始想,没错 … 又有一些垃圾东西要学了
    4. 今天你被心灵深处的一个闹铃闹醒,心想:这该死的json究竟是个什么东西?为什么突然间到处都是它了!

    于是晚上我乘坐了一辆慢腾腾的公交回到家(周五通常都是很慢),然后给自己找了一大堆关于JSON资料。所以我可以文雅的带你进入JSON的大门。

    这就开始了 …

    这几个字母是什么意思?

    J avaS cript O bject N otation.

    [一个滑稽的名字。它应该被称作L ightweight E cmascript O bject N otation, 或简称 'LEON'。 ;-) ]

    它是个什么东西?

    JSON是一种传递对象的语法,对象可以是name/value对,数组和其他对象。

    下面是一小段JSON代码:

    {"skillz": {
    	"web":[
    		{"name": "html",
    		 "years": "5"
    		},
    		{"name": "css",
    		 "years": "3"
    		}],
    	"database":[
    		{"name": "sql",
    		 "years": "7"
    		}]
    }}

    你看懂了吧?那么当你再看到它时就知道它是JSON了。主要部分:

    花括弧,方括弧,冒号和逗号

    1. 花括弧表示一个“容器”
    2. 方括号装载数组
    3. 名称和值用冒号隔开
    4. 数组元素通过逗号隔开

    把它想成“得了厌食症的XML”

    (如果你跟我一样老,可以把它想成有层次关系的’.INI’文件)

    (如果你是个自以为是的Lisp小丑,可以把它想成”S-expressions”,自以为是吧)

    JSON很像XML,因为:

    1. 他们都“自我描述”,这意味着值都是可列举的,是“人类可读”的
    2. 都是有层级的。(例如你可以在值里再存放值)
    3. 都能被多种的编程语言解析和使用
    4. 都能使用AJAX方法来传递(例如httpWebRequest)

    JSON跟XML不一样,因为:

    1. XML里在元素的开始和结尾处有尖括号和标签名:JSON使用花括号,而且只在数据的开始和结束时使用。
    2. JSON更简练,毫无疑问更适合人类书写,也许也能让我们更快速的阅读。
    3. JSON可以在JavaScript里简单的传递到eval()方法里使用
    4. JSON里有数组{每个元素没有自己的名称}
    5. 在XML里你可以对一个元素使用任意想要的名称,在JSON里你不能使用Javascript里的保留字

    可是为什么?它有什么好的?

    当你写ajax之类的东西时,如果你使用JSON,你就勉去了手工拼写XML。更迅速。

    同样,当你写ajax之类的东西时,怎样最简单?XML方式还是JSON方式:

    XML方式:

    1. 取回一个XML文件
    2. 循环它,从中提取值
    3. 处理这些值,等

    对比

    JSON方式:

    1. 取回JSON字符串。
    2. ‘eval’ JSON数据

    它是面向对象的吗?

    No,严格的说,不是。

    就像是VB6里的面向对象一样。它提供了很好的封装机制,你可以使用它把数据和方法分离出来,但它不提供任何的继承,多型,接口,或其它类似的面向对象的东西

    很显然,它是使javascript变得更易于维护,分析和复用的方向上前进了一步。

    Thomas Frank 写了一个灵巧的javascript库 ,叫做classyJSON ,它在JSON代码上增加了继承和定义范围等特征。

    它只是用在客户端吗?

    是,也不是。在服务器端你可以容易的把对象序列化成JSON或反之。对于.net ,程序员可以使用类似Json.net的类库使这些操作自动化(我估计是使用反射机制),或你使用自己的程序来做这些事,可能会更快些。

    3分钟将近结束….

    就我所知,JSON是由一个叫做Douglas Crockford 的家伙发明的。如果你喜欢的话,可以看一下他的网站 ,他非常的有趣。

    这就是全部。

    我在几分钟的时间里只能整理出这些东西——所有我说的有些东西可能完全是错的。如果是这样,请留言告诉我,告诉我我有多傻。我会很高兴的纠正任何一个错误。祝你好运!

    (边注:如果你把 { 和 } 替换成”<” 和 “/>”,把”:” 换成 “/”… 你会得到一个非常像gaXml 的东西。有趣的世界。

    (边注2:Jason 和 Ajax 都是希腊神话中的英雄。预告:另外一些即将出现的技术垃圾包括:Heracles, Perseus, Deucalion, Theseus and Bellerophon。)


    本文原始地址:理解JSON:3分钟课程

  • 相关阅读:
    monogobd 查询语句
    node express 使用中间件multer实现文件上传
    express+monogodb+前台react JSX模板引擎相关配置(非webapck)服务端渲染
    uniapp项目实战 新闻类app
    react+express项目创建JSX模板方式
    express+monogodb实现增删改查
    uniapp 云函数批量导出功能实现及api方法封装
    uniapp自定义顶部搜索框兼容微信小程序
    MySQL-OnlineDDL在线DDL
    子查询优化
  • 原文地址:https://www.cnblogs.com/wzhanke/p/4562028.html
Copyright © 2011-2022 走看看