首頁(yè) 游戲

Minecraft指令手冊(cè)

第一百二十一章 JSON的格式

Minecraft指令手冊(cè) 你好MC 1403 2020-08-09 16:28:30

  看來(lái)JSON不先講完那是不行的,那么我們就先把JSON講完吧。

  JSON的格式相信大家在第二卷時(shí)就已經(jīng)知道了個(gè)大概,即:

  {元素:值}(1.9版本以前)

  {“元素“:值}(1.9版本即以后)

  其中,值可能是字符串、數(shù)字、布爾值等奇奇怪怪的東西,有些要加引號(hào)(比如字符串),有些不需要加引號(hào)。

  但是其實(shí)JSON還帶有另一種格式,這種格式它并不是用大括號(hào)包起來(lái)的,而是用中括號(hào),即:

  [對(duì)元素:值](1.9版本以前)

  [“元素“:值](1.9版本以后)

  你可能會(huì)問(wèn):哎這兩種格式不是一模一樣嗎?

  其實(shí)是不一樣的,不一樣的地方就在于前者有多個(gè)對(duì)象時(shí)只能:

  {“text“:“我的天淦***“,“color“:“red“}

  或者是{“text“:“我的天“,“color“:“red“,“extra“:[{“text“:“淦“},{“text“:“***“}]}

  而后者卻可以這樣子:

  [{“text“:“我的天“,“color“:“red“},“淦“,“***“]

  或者是

  [{“text“:“我的天“,“color“:“red“},{“text“:“淦“},{“text“:“***“}]

  都可以達(dá)到上面大括號(hào)的效果。

  這是為什么呢?

  其實(shí)中括號(hào)就相當(dāng)于把大括號(hào)里元素extra給獨(dú)立出來(lái)一個(gè)格式,而extra就是一個(gè)JSON列表,這后面會(huì)講到。

  所以中括號(hào)雖然能把元素給拆分成一段一段的列表,但無(wú)法像大括號(hào)一樣直接列出來(lái),比如上面的:

  {“text“:“我的天“,“color“:“red“,“text“:“淦“,“text“:“***“}

  如果把{}換成[]就不行了,就會(huì)報(bào)錯(cuò)。想讓其不報(bào)錯(cuò)只能拆成一段一段的列表。

  而且實(shí)際上JSON的全格式就是中括號(hào),大括號(hào)格式只不過(guò)是從中括號(hào)里面拆出來(lái)的。

  其實(shí)中括號(hào)這個(gè)格式?jīng)]有你們想象的那么簡(jiǎn)單,注意到上面的中括號(hào)第一個(gè)例子中的“淦“和“***“了嗎?它們并沒(méi)有被加上“text“。

  但他們確實(shí)就是text。

  這是為什么?其實(shí)這就是一種偷懶的方法。

  因?yàn)镴SON最常用的就是text元素,所以JSON的作者就覺(jué)得這么多text看著太眼花繚亂。就簡(jiǎn)化了。

  但是這種簡(jiǎn)化只能在中括號(hào)格式里用,大括號(hào)里不能用。

  這又是為什么?

  其實(shí)在JSON里,被大括號(hào)包起來(lái)的整個(gè)就是一個(gè)對(duì)象。所以大括號(hào)格式本身就只有一個(gè)對(duì)象。

  而中括號(hào)格式里可以放很多個(gè)大括號(hào),所以中括號(hào)里可以有很多個(gè)對(duì)象。

  而上面這種簡(jiǎn)化方式,它簡(jiǎn)化后就變成了一個(gè)對(duì)象,因?yàn)樗荒茉偬砑悠渌谋热鏲olor的參數(shù),自然就不能在大括號(hào)里放了,只能在中括號(hào)放。

  (所以這種簡(jiǎn)化方式不止是刪了text,還刪除了大括號(hào)?)

 ?。](méi)錯(cuò),所以就更不可能在大括號(hào)里放了,不然就會(huì)變成大括號(hào)里再套大括號(hào),格式就不對(duì)了)

  既然這種簡(jiǎn)化方式本身并不能添加參數(shù),那么如果要修改顏色該怎么辦?

  這就要說(shuō)到對(duì)象的類(lèi)別了。

  在JSON列表里(就是上面說(shuō)的中括號(hào)格式),從左往右數(shù)的第一個(gè)對(duì)象其中的參數(shù)會(huì)影響其余的所有對(duì)象,所以我們通常把第一個(gè)對(duì)象叫做父對(duì)象,而其余的對(duì)象叫做子對(duì)象。

  這個(gè)名稱取得很符合現(xiàn)實(shí),畢竟現(xiàn)實(shí)中也是會(huì)基因遺傳的嘛。

  當(dāng)然,和現(xiàn)實(shí)一樣,子對(duì)象也可以通過(guò)額外添加參數(shù)來(lái)改變自己,當(dāng)然父對(duì)象遺傳下來(lái)的參數(shù)沒(méi)有被改變的話仍然是留在那里的。(注意,改變單個(gè)子對(duì)象的參數(shù)并不會(huì)改變后面全部子對(duì)象的參數(shù)看,因?yàn)檫@些子對(duì)象都是同級(jí)的。如果想改變單個(gè)子對(duì)象并同時(shí)改變后面的子對(duì)象,只能把后面的子對(duì)象全部變成該子對(duì)象的子對(duì)象,即孫子對(duì)象)

  所以你可以通過(guò)在父對(duì)象就設(shè)置好參數(shù),然后在子對(duì)象里寫(xiě)簡(jiǎn)化的文本,比如:

  [{“text“:““,“color“:“red“},“淦“}

  但需要注意的一點(diǎn)是,列表里的每一個(gè)對(duì)象里都必須要有一個(gè)顯示內(nèi)容的元素,比如text或score。當(dāng)然你也可以將元素留空,這樣子就不會(huì)出現(xiàn)任何的其他文本了。

 ?。~,這樣子直接把第二個(gè)對(duì)象的內(nèi)容寫(xiě)在第一個(gè)對(duì)象里不好嗎.......)

  對(duì)哦,這樣子更省事唉。

  這些就是JSON的格式了。

按 “鍵盤(pán)左鍵←” 返回上一章  按 “鍵盤(pán)右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書(shū)架
加入書(shū)架
書(shū)頁(yè)
返回書(shū)頁(yè)
指南