第189章 ,/.

在上一章提到了JSON文本。JSON文本在学习指令前期估计只有/title和/tellraw会用到,所以我们这边也就先认识一下如何使用JSON文本显示文本内容。

JSON /?d?e?s?n/,全称JavaScript Object Notation,是一种轻量级资料交换格式。而我们今天所要了解的,叫做JSON文本(JSON Text)。更确切的来说,是原始JSON文本(Raw JSON Text)。

需要注意,JSON≠JSON文本≠原始JSON文本。JSON有很多用途,不仅仅是拿来给你发消息用的。JSON文本严格来说指的是原始JSON文本经过识别所转化成我们人能够看得懂的文本,没有带JSON语法的那种,也就是最终的输出形式。原始JSON文本既然带有『原始』二字,那就是指还未经过识别的JSON文本,也就是还处于原始形态并带有JSON语法的JSON文本。

在Minecraft中,Java版和基岩版的JSON文本略有差别,但大体都相同。本章主要讲的是Java版的原始JSON文本的使用,因为在基岩版,原始JSON文本在指令中使用程度并不高。我们会在第六十章讲到基岩版的JSON文本。

如果你还没搞懂,也没关系,看下去就完事了。

原始JSON文本听起来很高级,让人望而生畏,给人一种『作者似乎想要尝试教会你们』的样子,但其实它并不高级,相反还很简单。

简单到什么程度呢?看:

““

这是一串没有任何内容的简写JSON文本,如果将其识别,转化为正式的输出文本格式,那将会是一串空空如也的文本。

我们可以尝试向里面加入一些东西,比如:

“Hello Minecraft“

这串JSON文本被识别后,也就是运行『/tellraw @a “Hello Minecraft“』,将会输出如下内容:

Hello Minecraft

(注意,JSON文本的所有括号均为英文半角括号,但阅文平台会自动将英文半角括号改为中文全角括号,所以会有些奇怪)

是不是很简单?但你有没有注意到,上面我提到『这是一串没有任何内容的简写JSON文本』,注意『简写』两字。

所以它的真正形态是什么呢?如下:

{“text“:“Hello Minecraft“}

别害怕,这仍然很简单。

上面这就是刚才那个『“Hello Minecraft“』的真正形态。我们对这个完全体进行解剖,可以得到如下内容:

{——一个花括号,这个花括号告诉游戏『嘿,这里是JSON文本的开始!』。游戏也根据它的形态,判断出接下来将是一个JSON对象。

“——一个英文半角括号,这个括号告诉游戏『这里是一个字符串的开始!』

text ——一串英文。游戏暂且不知道这串英文的意思,于是它继续看下去。

“——又是一个英文半角括号,这个括号告诉游戏『这里是这个字符串的结束!』

:——一个英文半角冒号,这个冒号告诉游戏『这里是这个组件(key-value pairs)的名称与值的界限!』。游戏根据以往的经验,确认刚刚遇见的『“text“』是这个组件的名称(key),这个组件是一个text纯文本内容组件。

“——还是一个英文半角括号,这个括号告诉游戏『这里是又一个字符串的开始!』

Hello Minecraft ——一串内容,游戏根据前面得到的消息,确认这是这个组件的值(value)。游戏因此得知,这个text纯文本内容组件将会显示出『Hello Minecraft』。

“——最后一个英文半角括号,这个括号告诉游戏『这里是这个字符串的结束!』

}——又一个花括号,这个花括号告诉游戏『这里是JSON文本的结束!』

然后游戏根据以上信息,确认这个原始JSON文本的意思是:显示出一串文本(text),内容为『Hello Minecraft』

我们也可以根据以上信息,了解了这个JSON文本:

①这个JSON文本被一对花括号({})包围,这对花括号标志着这个JSON文本的开始和结束

②这个JSON文本内有两个内容,text和Hello Minecraft。这两个内容都是字符串,因此均被英文半角括号(““)所包裹着。一对英文半角括号标志着一个字符串的开始和结束。

③『“text“』是组件的名称(key),由于是字符串需要加上括号,所以其中的text才是具体的名称,意思为『文本』,标志着这个组件的值是一串要被显示出来的文本,也标志着这个组件是一个纯文本内容组件。

本小章还未完,请点击下一页继续阅读后面精彩内容!

④『“Hello Minecraft“』是这个组件的值(value),由于它是一个字符串,因此要被括号包裹着,所以Hello Minecraft才是值的内容。这标志着这个纯文本内容组件将会显示出『Hello Minecraft』。

⑤『:』英文半角冒号是一对『组件名称』与『组件值』的分界线,其左边是名称,右边是值。

⑥『“text“:“Hello Minecraft“』像这样的由一对『名称』和『值』组成的东西,叫做『组件』(key-value pairs)。

⑦一个组件的名称规定了该组件是个什么东西,干什么用的。值则规定了该组件具体要干什么,怎么干。

⑧如果值或组件名是一个字符串(组件名肯定是),那就得使用括号将其包裹起来。