⑧外面被花括号所包裹着的,里面有一个或多个组件的东西,就像『{“text“:“Hello Minecraft“}』这样的,是一个JSON对象(Object)。
(注:上面提到的什么『组件』之类的,是本书内才有的叫法,仅为了方便大家理解,官方并无此叫法。『组件』的正式叫法是『键-值对』,又叫做『属性-值对』、『栏位-值对』、『名称-值对』。其中,『键-值对』的英文是『key-value pairs』)
这就是JSON的基础语法,如果你能看懂上面的内容,那就恭喜你,接下来的内容对你来说将会相当简单。
现在我们已经知道名称叫做text的组件,是纯文本内容组件。这个组件所输出的内容是一串平平无奇的文字,没有颜色,也没有什么特效。
如果我们想要给这串文字添加更多的特效,就要了解更多的组件及其使用方法。
在Minecraft Java的JSON文本中,可用的组件可以分为两类:内容组件和修饰组件。内容组件用于规定每个JSON文本对象能够表现出什么样的内容,一个JSON文本对象最多只能有一个内容组件;修饰组件用于修饰内容组件,一个JSON文本对象可以拥有多个修饰组件来对输出的内容进行修饰。
内容组件最基础的是『text』,即上面接触过的纯文本内容组件。
使用纯文本内容组件,可以显示一串最简单的JSON文本,就像上面的那个JSON文本:
{“text“:“Hello Minecraft“}
需要注意,JSON文本是对大小写敏感的,因此你不能写成如下的样子:
{“TEXT“:“Hello Minecraft“}
那样子会报错。
上面显示出来的Hello Minecraft是最基础的白色。如果要更改文字颜色,那么就需要使用color组件(在Java版,JSON文本很难使用分节符)。
color的值是字符串,也就是说需要被引号包裹着。值支持17种颜色ID:
black(黑)、dark_blue(深蓝色)、dark_green(深绿色)、dark_aqua(深湖蓝色)、dark_red(深红)、dark_purple(深紫)、gold(金色)、gray(灰色)、dark_gray(深灰色)、blue(蓝色)、green(绿色)、aqua(湖蓝色)、red(红色)、light_purple(亮紫色)、yellow(黄色)、white(白色)和reset(取消颜色效果使用默认颜色,一般使用于子JSON对象中)
比如:
{“text“:“Hello Minecraft“,“color“:“light_purple“}
就可以显示一个浅紫色的“Hello Minecraft”。其中,color颜色组件修饰了text纯文本内容组件的颜色为浅紫色。不难发现,如果有多个组件,就得使用英文半角逗号将它们分开。
如果你认为这些颜色还不够,你甚至可以使用HTML的十六进制颜色格式来搞到更多的颜色。比如红色的十六位颜色编码就是:#ff0000,用到JSON文本里就是:
{“text“:“Hello Minecraft“,“color“:“#ff0000“}
关于HTML十六位颜色编码的具体内容自己上百度或谷歌搜,这儿就不多讲了。
我们知道分节符§不仅可以更改文本颜色,还可以为文本添加更多的格式。那么在JSON中,我们该如何为一串JSON文本添加格式呢?
§能添加五种文本格式,对应到JSON中即是:
§k 乱码对应obfuscated模糊文本
§l 加粗对应bold粗体
这章没有结束,请点击下一页继续阅读!
§m 删除线对应strikethrough删除线
§n 下划线对应underlined下划线
§o 斜体对应italic斜体
上面的五个组件其值类型均为布尔值,也就是true(开启)和false(关闭)。
在JSON文本中,布尔值和gamerule一样,是使用true和false,并且并不需要添加括号,因为不是字符串。
比如要为Hallo Minecraft添加斜体,你就需要这样子:
{“text“:“Hello Minecraft“,“italic“:true}
其中,italic斜体修饰组件修饰了text内容组件为斜体。你可以尝试将italic改为其他组件,比如underlined、bold之类的。
现在我们已经了解了Java版JSON文本的基本使用方法,基本上日常使用是没有什么问题了。
不对,还有一个问题!如果要在一串JSON文本里前面使用一种颜色或文本格式,后面使用另一种颜色或文本格式,那该怎么办?
确实,使用花括号包裹的JSON文本,也就是JSON文本对象,就算修饰组件能够含有多个,具体下来其实每个组件也只能包含一个,还没有什么先后顺序。
那怎么办呢?能不能一次性就使用多个JSON文本对象呢?