JSON を理解する: 3 分間のレッスン_json

WBOY
リリース: 2016-05-16 18:00:14
オリジナル
1120 人が閲覧しました
  1. 两个月前你从没听说过JSON
  2. 一个月前你听说了这个词但没有留意
  3. 一周前你发现这个词被提到多次,开始想,没错 … 又有一些垃圾东西要学了
  4. 今天你被心灵深处的一个闹铃闹醒,心想:这该死的json究竟是个什么东西?为什么突然间到处都是它了!

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

这就开始了 …

这几个字母是什么意思?

JavaScript Object Notation.

[一个滑稽的名字。它应该被称作Lightweight Ecmascript Object Notation, 或简称 '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数据

それはオブジェクト指向ですか?

いいえ、厳密に言えば、いいえ。

VB6 のオブジェクト指向に似ています。これは優れたカプセル化メカニズムを提供し、データとメソッドを分離するために使用できますが、継承、ポリタイプ、インターフェイス、またはその他の同様のオブジェクト指向のものは提供しません

明らかに、これは JavaScript の保守、分析、再利用を容易にする上での一歩です。

Thomas Frank は、classyJSON という 柔軟な JavaScript ライブラリ を作成しました。これは、JSON コードに継承や定義スコープなどの機能を追加します。

クライアント側でのみ使用されますか?

はい、いいえ。サーバー側では、オブジェクトを JSON にシリアル化したり、その逆を簡単に行うことができます。 .net の場合、プログラマーは Json.net のようなクラス ライブラリを使用してこれらの操作を自動化することができます (リフレクション メカニズムを使用していると思います)。または、独自のプログラムを使用してこれらの処理を実行することもできます。 。

もうすぐ 3 分が終わります…

私の知る限り、JSON は Douglas Crockford という名前の人によって発明されました。気に入ったら、彼のウェブサイトを覗いてみてください。彼はとても興味深い人です。

以上です。

私が整理する時間が数分あるのはこれだけです。私が言いたいのは、私が言ったことの一部は完全に間違っている可能性があるということだけです。もしそうなら、私にコメントを残して、私がどれほど愚かであるかを教えてください。間違いがあれば喜んで修正させていただきます。幸運を!

(補足: { と } を "<" と "/>" に、":" を "/" に置き換えると、gaXml のようなものになります。面白い世界ですね

(補足 2: ジェイソンアヤックス はどちらもギリシャ神話の英雄です。プレビュー: その他の今後のテクノロジージャンクには、ヘラクレス、ペルセウス、デウカリオン、テセウス
、ベレロフォンが含まれます)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート