摘要:一直在用,發(fā)現(xiàn)并不了解。并且獨(dú)立于語(yǔ)言,可以在各語(yǔ)言間進(jìn)行數(shù)據(jù)交換。字符是大小敏感的。注意是轉(zhuǎn)義字符,還支持其他轉(zhuǎn)義字符,見(jiàn)參考數(shù)字可以整數(shù),浮點(diǎn)數(shù),科學(xué)計(jì)數(shù)法表示。元素類(lèi)型最好是同一類(lèi)型,畢竟大多數(shù)語(yǔ)言不支持元素類(lèi)型多種類(lèi)型。
一直在用JSON,發(fā)現(xiàn)并不了解JSON。好吧,花點(diǎn)時(shí)間學(xué)習(xí)下。
一、JSON的概念:什么是JSON?全稱(chēng):JavaScript Object Natation(JS對(duì)象標(biāo)記法),JSON用字符串的格式表示結(jié)構(gòu)化數(shù)據(jù)。并且獨(dú)立于語(yǔ)言,可以在各語(yǔ)言間進(jìn)行數(shù)據(jù)交換。
二、JSON的語(yǔ)法:JSON是如何通過(guò)字符串表示結(jié)構(gòu)數(shù)據(jù)的? 2.1 JSON的類(lèi)型(6種):JSON有6中數(shù)據(jù)類(lèi)型示:object, array, number,string,bool(true, false),null(之前一直以為JSON數(shù)據(jù)必須要包在花括號(hào)里,囧)。絕大部分語(yǔ)言都有這6種數(shù)據(jù)類(lèi)型,這樣JSON就可以跨語(yǔ)言傳遞了(即獨(dú)立于語(yǔ)言)。
// 以下都是合法的JSON "{"a": 1}" // 對(duì)象 "[1,2,3,4]" // 數(shù)組 "[1,true,null,{"a":1}]" // 數(shù)組 注意表示不能夸語(yǔ)言,有些語(yǔ)言限制數(shù)組的元素類(lèi)型一致 "1" // number 1 "true" // bool true "null" // null ""abc"" // 字符串 "abc" // 以下是否非法的JOSN字符串 "undefined"2.2 String
JSON 字符串是Unicode編碼的,用雙引號(hào)表示字符串(有些語(yǔ)言中(如JS)單引號(hào)也能表示字符串,但是畢竟大部分語(yǔ)言不支持這種表示,所以JSON字符串只能是雙引號(hào)表示)。
字符是大小敏感的。
""a c"" // "a c" 注意 是轉(zhuǎn)義字符,JSON還支持其他轉(zhuǎn)義字符,見(jiàn)參考 ""abc"" // "abc"2.3 Number
JSON 數(shù)字可以整數(shù),浮點(diǎn)數(shù),科學(xué)計(jì)數(shù)法表示。
"1" // 1 "0.1" // 0.1 "-1" // -1 "1e+2" // 1* (10 * 10) -> 100 (e大小寫(xiě)不區(qū)分,即也可以這樣表示"1E+2") "1e-2" // 1* (0.1 * 0.1) -> 0.01
注意:
A:正數(shù)不能帶”+“表示
B:只能表示10進(jìn)制的數(shù)字,其他進(jìn)制不能表示。
對(duì)象就是鍵值對(duì)集合了,值可以是6中類(lèi)型的任意一種。
"{"a": 1, "b": true}" // 格式就是"{name1: value1, name2:value2}"2.5 數(shù)組
數(shù)組時(shí)值的集合,值可以是6中類(lèi)型的任意一種。元素類(lèi)型最好是同一類(lèi)型,畢竟大多數(shù)語(yǔ)言不支持元素類(lèi)型多種類(lèi)型。
"[1,2]" "[{"a":1}]"三、日期的表示
大部分語(yǔ)言日期都是個(gè)對(duì)象,并且不是簡(jiǎn)單的Plain Object,導(dǎo)致日期在各語(yǔ)言中JSON表示不完全一樣(JavaScript中JSON.stringify方法通過(guò)Date.toString方法把日期轉(zhuǎn)成字符串),所以在有日期的數(shù)據(jù)交換時(shí)要注意。一般處理方法:將日期轉(zhuǎn)成各語(yǔ)言都支持的日期字符串格式(如:"yyyy-MM-dd hh:mm:ss"),還可以將日期通過(guò)毫秒數(shù)值表示。
四、JSON SchemaJSON Schema是一種特殊的JSON數(shù)據(jù),它是用來(lái)描述JSON數(shù)據(jù)的。
參考JSON.org
ajv
【第1276期】JSON Schema 那些事兒:基本概念
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83787.html
摘要:什么是對(duì)象簡(jiǎn)譜是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫(xiě)。同時(shí)也易于機(jī)器解析和生成。 什么是Json? Json(JavaScript Object Notation,JS 對(duì)象簡(jiǎn)譜)是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫(xiě)。同時(shí)也易于機(jī)器解析和生成。一些合法的Json實(shí)例:鍵值對(duì):(可以沒(méi)有鍵只有值)鍵 ...
摘要:在這里今天老蔣在針對(duì)商家新加坡機(jī)房進(jìn)行測(cè)評(píng)。關(guān)于云服務(wù)器相關(guān)的文章優(yōu)惠碼優(yōu)惠碼整理專(zhuān)題每月更新最新優(yōu)惠活動(dòng)新用戶(hù)最高送美元韓國(guó)機(jī)房機(jī)房測(cè)評(píng)韓國(guó)首爾機(jī)房綜合速度和線路去程回程測(cè)試新人教程新人系列教程新注冊(cè)賬戶(hù)且用優(yōu)惠碼享受贈(zèng)送余額老蔣在昨天的文章中有提到Vultr商家韓國(guó)首爾機(jī)房,雖然離我們距離比較近,但是人家設(shè)立的機(jī)器并非針對(duì)我們大陸用戶(hù)的,而是除了我們之外的其他亞洲地區(qū)的速度是比較好的,比...
摘要:最近一段時(shí)間,經(jīng)典主機(jī)新增日本大阪軟銀機(jī)房,國(guó)內(nèi)的值相當(dāng)不錯(cuò),特別適合聯(lián)通用戶(hù)訪問(wèn)使用。日本經(jīng)典主機(jī)電信線路日本經(jīng)典主機(jī)電信線路這是經(jīng)典的日本大阪軟銀機(jī)房電信回程線路。經(jīng)典瓦工的VPS主機(jī)現(xiàn)在已經(jīng)完全走了高端領(lǐng)域了,CN2 GIA的VPS主機(jī)現(xiàn)在連月付都沒(méi)有了,只有季付了,平均下來(lái)月付必須是十幾美元才可以,價(jià)格實(shí)在是太貴了。不過(guò),好在經(jīng)典VPS主機(jī)的線路質(zhì)量不錯(cuò),而且機(jī)房的帶寬給得足,用于建...
閱讀 2988·2021-11-16 11:45
閱讀 5188·2021-09-22 10:57
閱讀 1775·2021-09-08 09:36
閱讀 1602·2021-09-02 15:40
閱讀 2517·2021-07-26 23:38
閱讀 1203·2019-08-30 15:55
閱讀 929·2019-08-30 15:54
閱讀 1220·2019-08-29 14:06