摘要:不同的語(yǔ)言中,它被理解為對(duì)象,紀(jì)錄,結(jié)構(gòu),字典,哈希表,有鍵列表,或者關(guān)聯(lián)數(shù)組值的有序列表。數(shù)組是值的有序集合。在前后端分離的大勢(shì)是前段和后端的一種數(shù)據(jù)交換形式,不僅僅是前后端的一種數(shù)據(jù)交換形式,還是系統(tǒng)之間進(jìn)行數(shù)據(jù)交換的一種形式。
作為一名開發(fā)人員,我們時(shí)常跟JSON打交道,但對(duì)于JSON卻有這不少的疑惑,但平常也就是停留在使用的角度上。今天我們就來(lái)走進(jìn)JSON。 我們首先引入兩個(gè)問(wèn)題,這兩個(gè)問(wèn)題將幫助我們理解JSON。
什么是JSON?
為什么需要JSON或者JSON能幫助我們做什么?
第一個(gè)問(wèn)題的答案就隱藏在JSON的名字當(dāng)中,JSON: JavaScript Object Notation. 我們重點(diǎn)關(guān)注Notation這個(gè)詞,前兩個(gè)詞我們很熟悉。
Notation: 符號(hào),記號(hào),譜號(hào)。 我們是否可以將JSON理解為JavaScript對(duì)象的符號(hào)形式呢? 帶著這個(gè)疑問(wèn),我查看了JSON的官網(wǎng):
請(qǐng)注意標(biāo)紅的部分,這是關(guān)鍵。我們?cè)趶?qiáng)調(diào)一遍,一種輕量級(jí)的數(shù)據(jù)交換格式。
根據(jù)以上的求索,我們可以對(duì)JSON做出以下論斷:
JSON是JavaScript對(duì)象的表示形式
JSON是一種輕量級(jí)的數(shù)據(jù)交換形式
從JSON的官網(wǎng)可以看到JSON有兩種結(jié)構(gòu):
“名稱/值”對(duì)的集合(A collection of name/value pairs)。不同的語(yǔ)言中,它被理解為對(duì)象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)
值的有序列表(An ordered list of values)。在大部分語(yǔ)言中,它被理解為數(shù)組(array)
"名稱/值"對(duì)的集合,好怪的說(shuō)法啊,JSON脫胎于JavaScript,簡(jiǎn)單的說(shuō),JSON就是JavaScript的對(duì)象和數(shù)組。
那么JSON是JavaScript的對(duì)象嗎?并不是,說(shuō)JSON是JavaScript的對(duì)象和數(shù)組只是為了方便理解JSON而已,JavaScript Object Notation, JavaScript Object Notation,我們強(qiáng)調(diào)兩遍,Notaiton在牛津字典的解釋是 a system of signs or symbols used to represent information---即一種代表某種信息的符號(hào)。叫 JavaScript Object Notation的原因也許是JSON的作者道格拉斯同志在設(shè)計(jì)JSON時(shí)參考了JavaScript Object的對(duì)象語(yǔ)法而已。
JSON的形式:
對(duì)象是一個(gè)無(wú)序的“‘名稱/值’對(duì)”集合。一個(gè)對(duì)象以 {左括號(hào) 開始, }右括號(hào) 結(jié)束。每個(gè)“名稱”后跟一個(gè) :冒號(hào) ;“‘名稱/值’ 對(duì)”之間使用 ,逗號(hào) 分隔。
數(shù)組是值(value)的有序集合。一個(gè)數(shù)組以 [左中括號(hào) 開始, ]右中括號(hào) 結(jié)束。值之間使用 ,逗號(hào) 分隔。
值(value)可以是雙引號(hào)括起來(lái)的字符串(string)、數(shù)值(number)、true、false、 null、對(duì)象(object)或者數(shù)組(array)。這些結(jié)構(gòu)可以嵌套。
接下來(lái),我們從數(shù)據(jù)交換形式的角度來(lái)解釋JSON,數(shù)據(jù)交換是誰(shuí)和誰(shuí)做交換呢? web客戶端和服務(wù)端吧。在前后端分離的大勢(shì),JSON是前段和后端的一種數(shù)據(jù)交換形式,不僅僅是前后端的一種數(shù)據(jù)交換形式,還是系統(tǒng)之間進(jìn)行數(shù)據(jù)交換的一種形式。
為什么需要JSON呢?
那就要請(qǐng)出XML同志了,在沒有JSON同志之前,都使用XML進(jìn)行數(shù)據(jù)交換,但是XML并不簡(jiǎn)單,有著各種各樣的數(shù)據(jù)約束,越搞越復(fù)雜,我們希望數(shù)據(jù)交換形式盡可能的簡(jiǎn)單一些,不想再去了解那些讓人頭痛的那一大堆的復(fù)雜規(guī)范。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75076.html
摘要:開發(fā)環(huán)境和生產(chǎn)環(huán)境都擁有的配置,但在細(xì)節(jié)上有所不同,比如說(shuō),又比如說(shuō)中的和參數(shù)。更重要的是,實(shí)際上開發(fā)環(huán)境和生產(chǎn)環(huán)境的配置文件的絕大部分都是一致的,對(duì)于這一致的部分來(lái)說(shuō),我們堅(jiān)決要消除冗余,否則后續(xù)維護(hù)起來(lái)不僅麻煩,而且還容易出錯(cuò)。 本文首發(fā)于Array_Huang的技術(shù)博客——實(shí)用至上,非經(jīng)作者同意,請(qǐng)勿轉(zhuǎn)載。原文地址:https://segmentfault.com/a/11900...
摘要:入門你必須知道的那些事最基本的一些操作和概念用執(zhí)行一段代碼在命令行中用切換到桌面創(chuàng)建一個(gè)文件夾和并用命令切換到這個(gè)文件夾創(chuàng)建一個(gè)文件并寫上簡(jiǎn)單的代碼在命令行中輸入命令行會(huì)輸出引用文件的方式采用了規(guī)范通過(guò)來(lái)引入一個(gè)文件新建文件并在文件中引入執(zhí) 入門node.js你必須知道的那些事 最基本的一些操作和概念 用node執(zhí)行一段js代碼 在命令行中用cd切換到桌面 創(chuàng)建一個(gè)文件夾和并用cd命...
摘要:最近,一個(gè)小伙伴問(wèn)了我一個(gè)問(wèn)題和的區(qū)別當(dāng)時(shí)我想了又想,很不好意思的說(shuō)了我不知道,所以,抽了個(gè)事件好好的利用了一下度娘和總結(jié)了一下。 最近,一個(gè)小伙伴問(wèn)了我一個(gè)問(wèn)題property和attribute的區(qū)別?當(dāng)時(shí)我想了又想,很不好意思的說(shuō)了我不知道,所以,抽了個(gè)事件好好的利用了一下‘度娘’和‘Google’總結(jié)了一下。度娘搜索到的有用信息知乎中的討論csdn搜索的結(jié)果,Google發(fā)現(xiàn)的...
摘要:使用輸入輸出更方便,不需增加數(shù)據(jù)格式控制,比如整形,字符等缺省參數(shù)備胎缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個(gè)默認(rèn)值。此外,函數(shù)重載要求參數(shù)不同,而跟返回值沒關(guān)系。 ...
閱讀 3476·2021-11-19 09:40
閱讀 1492·2021-10-13 09:41
閱讀 2655·2021-09-29 09:35
閱讀 2710·2021-09-23 11:21
閱讀 1693·2021-09-09 11:56
閱讀 830·2019-08-30 15:53
閱讀 844·2019-08-30 15:52
閱讀 598·2019-08-30 12:47