第147章真正深入了解NBT-1
在之前的第一百章——“深入地了解一下nbt”中,其中的80%都有水的成分。所以今天,我们就真正深入地了解一下nbt。
——第一节:nbt的格式
在之前,我们已经讲了很多nbt。这些nbt内容都不一样,但它们都有一个共同点:
最外层都是使用“{}”包裹起来的。
没错,nbt和json的格式并不一样。json最外层使用“[]”和“{}”都可以,nbt却只能使用“{}”。
这是nbt的基本格式。
而nbt里面,是由n个标签组成的。每个标签之间必须用英文的半角逗号来区分。标签里包含标签名称和值,它两使用英文的半角冒号分隔:
{标签:值,标签:值,标签:值}
(注:阅读平台会自动把半角改成全角,所以这里的符号是全角符号,实际上在写的时候是全是半角)
而这个标签中的标签名称,它不是什么都能写的,而是有一个规则:
1.标签名称中只能出现字母a-z和a-z、数字0~9、下划线“_”。
2.标签名称中不允许出现空格(空格都以下划线替代)、中文以及特殊符号
3.标签名称对大小写敏感。
当违反了上述规则的时候,就会报错(或者是被游戏理解为另外一种意思)。
而标签的值,大家应该都知道标签的值类型是同标签中的标签名称或由另一个标签决定的,所以不同的标签名称,填的值格式都是不同的。
但实际上,值并不是直接写上内容就行了。当标签名称决定值的类型为特定类型时,值实际上还会有一个可填可不填的格式,我们待会就会讲到。
——第二节:nbt数据类型
在之前,我们已经提到了很多nbt数据类型的名词:
单精度浮点型
双精度浮点型
整形(整数)
复合标签({})
列表([])
整型数组([i;1,2,3,4])
字符串
可以发现,nbt的数据类型和json的并不一样,而且类型还比json多。
其实并不是类型多,而是nbt的类型分得比较细,实际上你搞个分类,就和json差不多了。
好的,现在请你拿出你的笔记本,并坐好,做一下心理准备,我们的车马上就要开动了!
3
2
1
go!
nbt一共有14种数据类型,分别是:
[字符]
字符串(string)
[数值]
{整形}
字节型(byte:b)
短整型(short:s)
整型(int:i)
长整型(long:l)
{浮点型(小数)}
单精度浮点型(float:f)
双精度浮点型(double:d)
[数据]
复合标签(compound)
列表(list)
[数组]
字节型数组(bytearray:[b])
整型数组(intarray:[i])