《Minecraft指令手册》

第127章JSON剩下の一些东西

上一章 封面 下一章

我们知道,在JSON里,对象有分为父对象和子对象,第一个对象肯定是接下来的对象的父对象。

只不过这种父对象子对象一般只会在

这种JSON列表里才会遇到,{}里一般用不到。

如果{}里也要分父对象和子对象呢?那就要使用“extra”元素了,这位元兄已经在之前出过很多次场了。

extra是这么用的:

{“内容元素“:“一些内容“,“extra“:[{},{}......]}

没错,使用extra,就可以在一个对象里再放入许许多多的对象。只不过这时候你可能会问:唉那extra里面的这些对象的父对象到底是哪个对象呢?

很简单,我们可以拿JSON的列表说话:

[““,{“内容元素“:“一些内容“,“extra“:[{},{}......]}

在这里,最外层的列表的父对象是第一个,第二个带extra的是子对象。

子对象的孩子,也就是extra,都是子对象的子对象,也就是孙子对象。

所以extra里面的对象全部都是孙子对象,而它们的父对象,就是extra本身元素所待的对象。

懂了吧?所以一个对象里的extra里的所有对象,其格式会照搬extra本身所在的对象。

只不过请注意一点:在你打指令之前,请你先注意一下extra本身所在的对象有没有内容元素,extra本身并不是内容元素!

这就是extra的用法。

但这并不代表本章结束了,你还记得第一百一十九章的这串指令吗:

/team modify 称号生存带师 prefix [{“text“:“[lv.“,“lor“:“red“},{“sre“:{“name“:“*“,“objective“:“等级“}},{“text“:“]“,“lor“:“red“},{“text“:“[生存带师]“,“lor“:“red“}

如果你真的去试了,你就会发现,实际上是这样的:

[lv.

生存带师]lbwnb谁有铁啊!!!我真的很缺铁哎!!!

这是怎么回事呢?

因为sre出错了。

sre显示的分数只能是一个玩家的,所以sre的name目标选择器不可以选中多个目标,或者是指定名称。

但是我们上面使用了*,这到底是干啥的呢?

你如果没跳过第一百二十二章的话,你就应该知道,*号的作用当时作者描述的是:显示自己的分数。

如果你语文比较好,注意力和观察力都是中偏高的,你就会发现上面这段描述有些问题:

显示谁自己的分数?

肯定是显示读者自己的分数。所以,*号并不能拥有多个读者,这样子它才不会逻辑混乱最后劳资不干了。

这时候问题就来了:怎样确定一个文本有没有多个读者呢?

我们常用的tellraw,格式相信你也知道,是这样的:

/tellraw 目标选择器JSON文本

在执行指令的时候,我们的游戏会先执行目标选择器,寻找符合的目标。

然后游戏会将JSON文本作为聊天消息分发给这些目标,然后再解析。这样子每个目标读到的JSON文本实际上都是独立的,自然就不会出现“一串文本有多个读者”的情况。

但如果是我们的队伍前后缀呢?可以发现设置的时候是没有目标选择器的,所以游戏并不会分发,而是直接公示,结果这就导致一串JSON文本会有很多读者,自然而然sre就发挥不了作用了。

嗯,JSON的内容基本上就到这了,JSON的NBT我们放到下一卷讲NBT时再来讲。

阅读Minecraft指令手册最新章节 请关注热血小说网(www.oaksh.cn)

上一章 目录 下一章 存书架

其他热门小说

Minecraft指令手册